JourneyPrinter

Version compatibility

This feature was introduced in version 19.12.2 of the JourneyApps Container for iOS and Android, and version 20.4.1 for Desktop. Version 4.72.0 of the JourneyApps Runtime is also required.

JourneyApps can print a PDF directly using the native printing capabilities provided by the operating system.

How to check if JourneyPrinter is supported

You can also check that printing is supported:

    var capabilities = JourneyPrinter.getCapabilities();

Returns

    {
        print: true|false,
        generatePdf: true|false
    }

Note: For Runtime versions below 4.72.0, the JourneyPrinter object will not be available.

Printing a PDF

To print a PDF, you need to provide the JourneyPrinter.printPDF function a PDF in the format of an ArrayBuffer or a base 64 string. In the case of an attachment object, helper functions are available:

    // Print a PDF from an ArrayBuffer:
    JourneyPrinter.printPdf(view.pdf.toArrayBuffer());
    
    // Print a PDF from base 64 string:
    JourneyPrinter.printPdf(view.pdf.toBase64());

The origin of the PDF data can also be another source, e.g. using an <html/> component to generate a PDF and send it in base 64 format to the app to be printed.

Generate a PDF

This feature was introduced in version 20.10.1 of the JourneyApps Container for Desktop. It is not available on mobile or web containers. Version 4.77.0 of the JourneyApps Runtime is also required.

Format

JourneyPrinter.generatePdf(htmlString, options);

where htmlString is a string of HTML with @page or @media print CSS rules to control how the PDF is displayed. In addition, the <head> tag of the HTML must also contain this <meta> tag:

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

and optional options:

valueDetailsDefault

landscape

Boolean to generate the PDF in landscape orientation

false

marginType

Number to specify the type of margin. 0 - default margin, 1 - no margin, 2 minimum margin

0

printBackground

Boolean to choose to print the background

true

pageSize

Size of the page. 'A3', 'A4', 'A5', 'Legal', 'Letter', 'Tabloid'

'A4'

Returns: The generated PDF as an ArrayBuffer.

Example

    var capabilities = JourneyPrinter.getCapabilities();
    if (capabilities.generatePdf == true) {
      // generate a PDF from an HTML string
      var generatedPdf = JourneyPrinter.generatePdf(htmlString, options);

      // create an Attachment object from the generated PDF ArrayBuffer:
      view.generatedPdf = Attachment.create({data: generatedPdf, mediaType: 'application/pdf'});

    }

Last updated