An HTML to PDF converter provided by RESTful API and command-line tool. Powered by puppeteer.
The best reason to use this method is that we can use it on any programming languages and software that support HTTP requests.
docker run -td -p 3000:3000 iamdual/html2pdfgit clone https://github.com/iamdual/html2pdf && cd html2pdf
npm install
npm run build
npm run startcurl -X POST 'http://localhost:3000/generate' \
--header 'Content-Type: application/json' \
--data '{
"source": "https://www.google.com",
"format": "A4",
"timeout": 10
}' > google.pdfcurl 'http://localhost:3000/generate?source=https://google.com&timeout=10' > google.pdfIt also support for command-line interface, so you can convert easily to a PDF.
git clone https://github.com/iamdual/html2pdf && cd html2pdf
npm install
npm run build
sudo npm link
html2pdf '<!DOCTYPE html><strong>Hello world!</strong>' -o output.pdf
html2pdf "https://www.google.com" --format A4 --timeout 10 -o google.pdf
html2pdf ./example.html --format A4 --pageRanges 1 -o example.pdf| Name | Type | Description |
|---|---|---|
| source | string | Set PDF document source. It must be specified. The source can be a URL or an HTML code. |
| timeout | integer | Set connection timeout. Default is 10. |
| javascript | boolean | Enable JavaScripts. To enable, the value should be true. Disabled by default. |
| pageRanges | string | Set pages by the numbers and ranges. Example: 1,2-4. All pages included by default. |
| mediaType | string | Set paper CSS media type. Must be one of screen or print. Default is screen. |
| format | string | Set paper format. Must be one of A0, A1, A2, A3, A4, A5, A6, Letter, Legal, Tabloid, Ledger. Default is A4. |
| width | integer | Set PDF document width. Both height and width must be used together. It will disable format option. |
| height | integer | Set PDF document height. Both height and width must be used together. It will disable format option. |
| scale | float | Set scale. The value must be greater than or equals to 0.1, or lower than or equals to 2. Default is 1. |
| landscape | boolean | Enable landscape mode. To enable, the value should be true. Disabled by default. |
| margin | string | Set margin(s) for the PDF document. It can be all four margin or specified by the values separated with space. Default is 0. |
| userAgent | string | Set custom user-agent string. |
| base64 | boolean | Return the PDF as a base64-encoded string (REST API only). Disabled by default. |
| headerTemplate | string | Set PDF header. HTML template for the print header. Should be valid HTML with the following classes used to inject values into them:
|
| footerTemplate | string | Set PDF footer. HTML template for the print header. Should be valid HTML with the following classes used to inject values into them:
|
Ekin Karadeniz (iamdual@icloud.com)