PDF from HTML#
Available Methods#
/pdf/convert/from/html#
Create PDF
from HTML
.
Method: POST
Endpoint: /v1/pdf/convert/from/html
Attributes#
Note
Attributes are case-sensitive and should be inside JSON for POST request.
Attribute |
Description |
Required |
---|---|---|
|
Input HTML code to be converted. To convert the link to a PDF use the /pdf/convert/from/url endpoint instead. |
yes unless you are using a |
|
Set to the ID of your HTML template. You can find and copy the ID from HTML to PDF Templates. |
no unless you are are not using |
|
Set it to a string with input |
no unless you are using |
|
Set to CSS style margins like |
no |
|
|
no |
|
Set to |
no |
|
|
no |
|
Uses |
no |
|
|
no |
|
User definable HTML for the header to be applied on every page header. |
no |
|
User definable HTML for the footer to be applied on every page bottom. |
no |
|
Set |
no |
|
File name for the generated output, the input must be in string format. |
no |
|
Set the expiration time for the output link in minutes (default is |
no |
|
Use this parameter to set additional configurations for fine-tuning and extra options. Explore the Profiles section for more. |
no |
HTML Templates#
Use the dashboard to manage your HTML to PDF Templates.
Templates use {{Mustache}}
and Handlebars templating syntax. You just need to insert macros surrounded by double brackets like {{
and }}
.
Find out more about Mustache.
Find out more about Handlebars.
Some Examples of macro inside html template:
{{variable1}}
will be replaced withtest
if you settemplateData
to{ "variable1": "test"}
{{object1.variable1}}
will be replaced withtest
if you settemplateData
to{ "object1": { "variable1": "test"} }
Simple conditions are also supported. For example:
{{#if paid}} invoice was paid {{/if}}
will show invoice was paid whentemplateData
is set to{ "paid": true }
.
Sample JSON input#
"templateData": "{ 'paid': true, 'invoice_id': '0002', 'total': '$999.99' }"
Note
If you use JSON
as input then make sure to escape it first (with JSON.stringify(dataObject)
in JS). Escaping is when every "
is replaced with \"
.
Example with "
be escaped as \"
then: "templateData": "{ \"paid\": true, \"invoice_id\": \"0002\", \"total\": \"$999.99\" }"
.
Sample CSV input#
"templateData": "paid,invoice_id,total
true,0002,$999.99"
Query parameters#
No query parameters accepted.
Payload#
{
"html": "<h1>Hello World!</h1><a href='https://pdf.co'>Go to PDF.co</a>",
"name": "result.pdf",
"margins": "5px 5px 5px 5px",
"paperSize": "Letter",
"orientation": "Portrait",
"printBackground": true,
"header": "",
"footer": "",
"mediaType": "print",
"async": false
}
Response 2#
{
"url": "https://pdf-temp-files.s3.amazonaws.com/97dc323f32794eae8fa6602f5bd981c1/result.pdf",
"pageCount": 1,
"error": false,
"status": 200,
"name": "result.pdf",
"remainingCredits": 60646
}
CURL#
curl --location --request POST 'https://api.pdf.co/v1/pdf/convert/from/html' \
--header 'x-api-key: ' \
--header 'Content-Type: application/json' \
--data-raw '{
"html": "<h1>Hello World!</h1><a href='\''https://pdf.co'\''>Go to PDF.co</a>",
"name": "result.pdf",
"margins": "5px 5px 5px 5px",
"paperSize": "Letter",
"orientation": "Portrait",
"printBackground": true,
"header": "",
"footer": "",
"mediaType": "print",
"async": false
}'
Code samples#
Footnotes
- 1
Supports links from Google Drive, Dropbox, and PDF.co Built-In Files Storage. To upload files via the API check out the File Upload section. Note: If you experience intermittent Too Many Requests or Access Denied errors, please try to add
cache:
to enable built-in URL caching. (e.gcache:https://example.com/file1.pdf
) For data security, you have the option to encrypt output files and decrypt input files. Learn more about user-controlled data encryption.- 2
Response codes as follows:
Code
Description
200
The request has succeeded
400
Bad input parameters
401
Unauthorized
403
Not enough credits
405
Timeout error. To process large documents or files please use asynchronous mode (set the
async
parameter totrue
) and then check status using the /job/check endpoint. If a file contains many pages then specify a page range using thepages
parameter. The number of pages of the document can be obtained using the /pdf/info endpoint.