Working With Liquid Code
Depending on your custom requirements, additional tasks with respect to Liquid templates can involve:
Accessing Liquid Template Debug Mode
The debug mode for Liquid templates provides an additional option that shows the underlying data structure.
-
Open the detail view of the corresponding record (invoice, dunning reminder or account statement).
In Salesforce Lightning, a standard URL of an invoice, for example, may look like
https://<server>/lightning/r/ONB2__Invoice__c/<id>/view
. -
Modify the URL as follows.
-
Replace the complete path with
apex/ONB2__InvoicePDF2?id=<id>
.For dunning reminders or account statements, use
apex/ONB2__DunningPDF2?id=<id>
, respectively. -
Append the intended URL parameter.
URL Parameter Description &debug=true
Shows the resulting HTML before it is processed by the PDF generator. &debug=data
Shows the data structure (JSON) included in the Liquid template.
The resulting URL may look like
https://<server>/apex/ONB2__InvoicePDF2?id=<id>&debug=true
-
-
Press Enter.
This opens the intermediate HTML file (or JSON structure, respectively), which you can now inspect using your tool of choice.
Using Custom Liquid Filters
In the Liquid template language, filters modify the output of the content to be displayed (see Introduction in the Liquid documentation). To support invoice-related templates, JustOn has introduced the following new filters:
currency
with optional parameters:fractionDigits
decimal
with optional parameters:maximumFractionDigits
,minimumFractionDigits
percent
with optional parameters:maximumFractionDigits
,minimumFractionDigits
Note
Parameters override global settings.
Filter parameter examples
{{ grandTotal | currency }}
{{ grandTotal | currency: 2 }}
{{ quantity | decimal }}
{{ quantity | decimal: 2, 2 }}
{{ quantity | decimal: 5, 2 }}
{{ commission | percent: 3 }}
{{ commission | percent: 3, 1 }}
Embedding Assets
In the Liquid template language, assets are embedded directly via data URIs.
Fonts
To embed a font, use data URIs, like illustrated in the following code, where <#>
is the base64 encoded font data:
<style type="text/css">
@font-face {
font-family: 'open_sansregular';
src: url(data:application/font-woff2;charset=utf-8;base64,<#>) format("woff2");
font-weight: normal;
font-style: normal;
}
body {
font-family: 'open_sansregular';
}
</style>
Info
To generate the data URIs and the base64 strings for fonts, you can use webfont generators like, for example, the Font Squirrel Webfont Generator.
Images
To embed an image, use data URIs, like illustrated in the following code, where <#>
is the base64 encoded image data:
<img class="logo-img" width="200" alt="Logo" src="data:image/png;base64,<#>"/>