Create PDF

The code snippet example will allow you to create a PDF file from HTML code that you pass to the PDF service. You will then be returned either a download link, or optionally the PDF file contents in the API response.

Code Snippet Example:


Build PDF
//Import the pdf service classes
$t->runInteraction("Pdf.class.php");
$t->runInteraction("Config.class.php");

//Set header, footer, and page content HTML Code
//HTML5 and CSS3 is supported
$header_html = "{_BLINK_PAGE_NO_}/{_BLINK_PAGES_}<br><hr>";
$footer_html = "<hr><br>{_BLINK_PAGE_NO_}/{_BLINK_PAGES_}";
$body = "<table><td>PDF Example: " . date("c") . "</td></tr></table>";

$content = array(
   "page" => array(
       "orientation" => "Portrait",
       "size" => "A4",
       "margins" => array(
           "top" => "5mm",
           "right" => "1cm",
           "bottom" => "5mm",
           "left" => "1cm"
       )
   ),
   "header" => array(
       "height" => "2cm",
       "html" => $header_html
   ),
   "footer" => array(
       "height" => "2cm",
       "html" => $footer_html
   ),
   "body" => array(
       "html" => $body
   )
);


//Call the PDF Service
$pdf = new PDFBuilder(Config::$PDF);

//Setting $includeBase64Content to true will include the PDF file content in the response object
//Set to false to access the PDF file from a time limited URL instead
$includeBase64Content = true;
$result = $pdf->build($content, $includeBase64Content);


 

Explanation:

The first two "runInteraction" lines will simply "include" the class files you already uploaded. Make sure your have used the correct interaction names. You will need to put both of these lines on any page, or interaction, that you will be calling the class.

$header_html (string)

The header will be displayed at the top of each page of your PDF document. You can use HTML code and styles to display your header.

Additionally, you can also use the special keywords for dynamic values:

{_BLINK_PAGE_NO_} will display the current page in the PDF document.

{_BLINK_PAGES_} will display the total number of pages in the PDF document.

 

 

Note: If you are using images in your header or footer, you will need to also place the same image in the body of your document, with the style set to display:none;. This is a current restriction with the library which we are looking at ways to get around.

 

 

$footer_html (string)

The footer will be displayed at the bottom of each page of your PDF document. You can use HTML code and styles to display your footer.

Additionally, you can also use the special keywords for dynamic values:

{_BLINK_PAGE_NO_} will display the current page in the PDF document.

{_BLINK_PAGES_} will display the total number of pages in the PDF document.


 

Note: If you are using images in your header or footer, you will need to also place the same image in the body of your document, with the style set to display:none;. This is a current restriction with the library which we are looking at ways to get around.

 

 

$body (string)

 

The body of the PDF document is what will be displayed in the main page area of your PDF document. This supports HTML5 and CSS3, and offers very accurate rendering for even some of the more complex HTML objects.

 

 

Page Layout

$content (array)

The content array contains the parameters required to produce a PDF document, including layout options and content.

 

Default Page Parametres
 "page": {
    "orientation": "P",
    "size": "A4",
    "margins": {
      "top": "5mm",
      "right": "1cm",
      "bottom": "5mm",
      "left": "1cm"
    }


$content['page'] (array)

The $content['page'] array allows you to set your PDF page layout options:

orientation: P | L

size: A3 | A4 (default) | A5 | Legal | Letter | Tabloid

margin (array): top, right, bottom, left keys accept a number followed by the unit px (default) | mm | cm | in


 

Response:

After running this method, you will receive a response object array:

Result Array
$result = array(
   "id" => "<UNIQUE OBJECT ID>",
   "url" => "http://url.to.pdf/valid.for.3.minutes",
   "content" => "base64 pdf content"
}


id (string)

This is a unique ID string for this PDF document.

url (string)

This is a private signed URL to the PDF document that will be accessible for three minutes. Depending on your use case, you may attach this to an email or offer it for download. Keep in mind that this link will expire after three minutes, so you will need to consider what to do with the document longer term.

content (base64 string)

If you pass the variable $includeBase64Content = true when you call the service,  the key "content" will also be included in the response array. The value of this key will be file contents of the PDF document, Base64 encoded.