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
Main response codes as follows:
Code
Description
200
Success
400
Bad request. Typically happens because of bad input parameters, or because the input URLs can’t be reached, possibly due to access restrictions like needing a login or password.
401
Unauthorized
402
Not enough credits
445
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.Note
For more see the complete list of available response codes.