Print template
An "Print template" is a word based document (*.docx format) used to generate the invoice hardcopy/printout customized to the subscribers' needs. Such customizations may include layouting, fonts, colors, branding, revealing or collapsing optional fields etc.. It is related to the Invoice type used to issue an invoice and can vary accordingly (receipts, invoices, credit notes, orders etc). That document can contain any number of bindings that map to the invoice DocumentModel
. These bindings are expressed as field accessors written inside brackets [[examplefield]]
.
The description of each field of the invoice template as well as all available options are given below.
Template available fields
Field | Description |
---|---|
[[IssuerLogoUrl]] |
Logo URL if exists or URL of a default image in case that logo path does not exist. |
[[Issuer.Company.LegalName]] |
Company’s legal name i.e. John Doe |
[[Issuer.Company.TaxCode]] |
Company’s tax code i.e. EL12345678 |
[[Issuer.Company.TaxOffice]] |
Company’s tax office i.e. Marousi |
[[Issuer.Company.Email]] |
Company’s email i.e. example@example.gr |
[[Issuer.Company.Website]] |
Company’s website i.e. example.gr |
[[Issuer.Company.Address.Phone1]] |
Company’s phone 1 i.e. 210101010 |
[[Issuer.Company.Address.Phone2]] |
Company’s phone 2 i.e. 213131313 |
[[Issuer.Company.Address.Line1]] |
Company's address i.e. Thivon 235 |
[[Issuer.Company.Address.City]] |
City where the company is located i.e. Athens |
[[Issuer.Company.Address.Line2]] |
Company's address |
[[Issuer.Company.Address.ZipCode]] |
Zipcode i.e. 12244 |
[[Issuer.Company.Address.Country]] |
Country where the company is located i.e. Greece |
[[Issuer.Company.PaymentMethods]] |
List of payment methods |
[[Issuer.Company.PaymentMethods.Name]] |
Payment method i.e. Alpha Bank |
[[Issuer.Company.PaymentMethods.Description]] |
Description of payment method i.e. GR 00XX OO90 OUHU OIHU 0XXX |
[[Issuer.Contact.FirstName]] |
Issuer’s contact physical person first name |
[[Issuer.Contact.LastName]] |
Issuer’s contact physical person last name, |
[[Issuer.Contact.Email]] |
Issuer’s contact physical person email, |
[[Issuer.Contact.Phone1]] |
Issuer’s contact physical person primary phone, |
[[Issuer.Contact.Phone2]] |
Issuer’s contact physical person secondary phone, |
[[Currency.Symbol]] |
Currency symbol i.e. € |
[[TotalPayable]:format(#,##0.00)] |
Total payable amount of the invoice i.e. 2000,05 |
[[Date]:format(d)] |
Invoice date i.e. 08/06/2017 |
[[TypeName]] |
Invoice type i.e. Invoice |
[[NumberPrintable]] |
Invoice number i.e. #000001 |
[[Recipient.Company.Name]] |
Recipient’s name i.e. Indice |
[[Recipient.Company.LineOfBusiness]] |
A product or a set of related products that serve a particular customer transaction i.e. Independent software vendor |
[[Recipient.Company.TaxCode]] |
Recipient’s tax code i.e. EL999999999 |
[[Recipient.Company.TaxOffice]] |
Recipient’s tax office i.e. ST’ Athinon |
[[Recipient.Company.Address.Line1]] |
Recipient’s address i.e. Iakchou 22 |
[[Recipient.Company.Address.City]] |
Recipient’s city i.e. Athens |
[[Recipient.Company.Address.Line2]] |
Recipient’s address |
[[Recipient.Company.Address.ZipCode]] |
Zip code i.e. 11854 |
[[Recipient.Company.Address.Country]] |
Country i.e. Greece |
[[Recipient.Company.Address.Phone1]] |
Recipient’s primary phone |
[[Recipient.Company.Address.Phone2]] |
Recipient’s secondary phone |
[[Recipient.Company.Email]] |
Recipient’s email i.e. info@incontrl.gr |
[[Recipient.Company.Website]] |
Recipient’s website i.e. www.incontrl.io |
[[Recipient.Contact.FirstName]] |
Recipient’s contact physical person first name |
[[Recipient.Contact.LastName]] |
Recipient’s contact physical person last name, |
[[Recipient.Contact.Email]] |
Recipient’s contact physical person Email, |
[[Recipient.Contact.Phone1]] |
Recipient’s contact physical person primary phone, |
[[Recipient.Contact.Phone2]] |
Recipient’s contact physical person secondary phone, |
[[Lines.Description]] |
Description of product i.e. Software development services |
[[Lines.TaxesDescription]] |
Taxes description i.e. VAT (24%), EFKA(9,22%) |
[[Lines.UnitAmount]:format(#,##0.00)] |
Unit amount i.e. 600,00 |
[[Lines.Quantity]] |
Quantity i.e. 2 |
[[Lines.DiscountRate]:format(#,##0.##%)] |
Discount rate i.e. 0% |
[[Lines.SubTotal]:format(#,##0.00)] |
Total per item |
[[SubTotal]:format(#,##0.00)] |
Sum of subtotals excluding Taxes i.e. 1200,00 |
[[TaxesExclusive.Name]] ([[TaxesExclusive.Rate]:format(#,##0.##%)] ) |
Name and rate of Taxes i.e. VAT (24%) |
[[TaxesExclusive.Amount]:format(#,##0.00)] |
Taxes amount i.e. 288 |
[[Total]:format(#,##0.00)] |
The sum of the Subtotal and TaxesExclusive.Amount fields i.e. 1488 |
[[PaymentCode]] |
Invoice payment code i.e. 176081 |
[[PermaLink]] .pdf |
link to download pdf |
[[PublicNotes]] |
Notes |
Useful Commands
Keywords:
Keyword | Description |
---|---|
clone | Used for cloning the entire document. Templater will append current document with current content |
fixed | Used in resizeable objects (like table) when you don't want to resize that object. For example, you have table with fixed number of rows and want Templater to replace those IEnumerable values and replace all others with empty string |
page | Used for specifying resizing of the page range in docx. When tag is placed in table and you want to resize entire page, not number of rows in that table, use page to override default context resize |
sheet | Used for specifying resizing of the sheet in xlsx. If you want to resize sheet range you can place tag in header or use sheet metadata on tag which is used for resizing. |
all | Replaces all instances of selected tag with provided values. Useful when there is the same tag on various places in document and Templater is unable to conclude that they should all be replaced with single value |
header | For DataTable /ResultSet data types, include header during dynamic resize |
horizontal-resize | In Excel, resize context horizontally instead of vertically |
whole-column | Use whole column instead of minimum spanning range during horizontal resize |
merge-nulls | Special handling of null values in tables/cells. Cells will be merged if null value is detected |
remove-old-xml | When XElement/Element is provided, remove the XML tree where tag was detected. Useful for cleaning up whitespace garbage |
replace-xml | When XElement/Element is provided, remove the children of matching XML tree and replace it with the provided XML. Useful for setting color in Word tables |
merge-xml | When XElement/Element is provided, merge provided XML with the surounding XML of the detected tag. Useful for setting color without removing old XML |
page-break | When doing resize include page break between elements (probably should not be used) |
no-repeat | To invoke old behavior of processing only the first collection with matching tags (probably should not be used) |
Default plugin keywords:
Keyword | Description |
---|---|
format | If encountered on date value it will replace DateTime value with string value (short date string if time part is empty) |
format(X) | Replaces current value formatted by x argument (for example N2 for number with two decimals) |
substring(n) | Returns substring of provided values after n chars |
substring(n,l) | Returns substring of provided values after n chars with l length |
padLeft(n) | Append space from left to create string of at least n length |
padLeft(n,c) | Append char c from left to create string of at least n length |
padRight(n) | Append space from right to create string of at least n length |
padRight(n,c) | Append char c from right to create string of at least n length |
join(X) | Flattens array to create a string with X between (for example {1,2,3}.join(-) becomes 1-2-3) |
hide | Replaces current value with empty string |
empty(X) | If value is null or empty (IEnumerable.length = 0) it will replace value with X |
bool(yes,no) | Boolean value will be converted to yes or no |
bool(YES,NO,MAYBE) | boolean value will be converted to YES, NO or MAYBE |
offset(D:H:M) | DateTime value will be offsetted by parsed Timestamp (special sign : is escaped with \ ) |
collapse | If value is null or empty (IEnumerable.length = 0) current context will be collapsed; tag will be removed |