This html to pdf converter converts web pages to pdfs using the Google Chromium engine via it's DevTools Protocol.
GET /test
(test PDF generation from sample HTML)POST /generate
(public API endpoint)Content-Type: application/json
eg.{
"apiKey": "your unique API key",
"html": "<h1>Sample h1 HTML for conversion</h1>"
}
Parameter | Type | Description |
---|---|---|
apiKey |
string |
Required (authorization). |
url |
string |
Required if no html. The url of the webpage to convert to pdf |
html |
string |
Required if no url. The html to convert to pdf |
scale |
string |
Optional. Scale of the webpage rendering. Defaults to 1. Scale amount must be between 0.1 and 2 |
displayHeaderFooter |
boolean |
Optional. Display header and footer. Defaults to false |
headerTemplate |
string |
Optional. HTML template for the print header. Should be valid HTML markup with following classes used to inject printing values into them: date , title , url , pageNumber , totalPages |
footerTemplate |
string |
Optional. HTML template for the print footer. Should use the same format as the headerTemplate |
printBackground |
boolean |
Optional. Print background graphics. Defaults to true |
landscape |
boolean |
Optional. Paper orientation. Defaults to false |
pageRanges |
string |
Optional. Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages |
format |
string |
Optional. Paper format. If set, takes priority over width or height options. Defaults to 'Letter' |
width |
integer |
Optional. Paper width, accepts values labeled with units |
height |
integer |
Optional. Paper height, accepts values labeled with units |
margin.top |
integer |
Optional. Top margin, accepts values labeled with units |
margin.right |
integer |
Optional. Right margin, accepts values labeled with units |
margin.bottom |
integer |
Optional. Bottom margin, accepts values labeled with units |
margin.left |
integer |
Optional. Left margin, accepts values labeled with units |
preferCSSPageSize |
boolean |
Optional. Give any CSS @page size declared in the page priority over what is declared in width and height or format options. Defaults to false , which will scale the content to fit the paper size |
If your POST request was successful then the pdf will be returned with HTTP success code 200.
Otherwise, the response will be in JSON format with an HTTP error code eg.
{
"success": false,
"errors": [
{
"msg": "Must provide either url or html",
"param": "url_html",
"location": "body"
}
]
}