Common mistakes
| Symptom | Cause | Fix |
|---|---|---|
The PDF shows {{ customer.name }} as text | Word split the placeholder internally, because it was edited mid-tag | Delete the whole placeholder and retype it in one go, with no corrections in the middle |
The PDF shows [[!NAME!]] or {NAME} | The template uses another product's syntax (PDF Butler, Portwood) | It needs converting. Our syntax is always {{ }} |
| A value is blank in the PDF | The template reads a field your JSON does not have — possibly a misspelling | Open the generation's Details page: sent but never read lists the typo. Or use Test with JSON, whose pre-filled payload shows every field the template expects |
| The table repeats only once | The {%tr for %} / {%tr endfor %} pair is missing, or both sit in the data row | They belong in two rows of their own, one above and one below the data row |
| From page 2 the table has no headers | The header row is not marked as repeating | Table properties → Row → Repeat as header row |
NO_ACTIVE_VERSION with a correct id | No version of the template is active | Open the template here and press Activate on the version you want |
None appears in the PDF | A field is null and gets printed instead of hidden | Wrap it in {% if field %}…{% endif %} |
| A whole section is missing | Its condition came out false | The generation's Details page names the condition and the value it saw, e.g. invoice.total (800) > 1000 is false |
A value is cut off with a … | A :::l code on that placeholder | Raise the number, or drop the code if the space was bigger than you thought |
| The table is shorter than the data sent | A :::max on the loop | Raise it. The generation's page says how many items were left out |
| The PDF uses a different font from the Word file, or a line breaks in another place | The server has free fonts only: a font it does not have is replaced by a similar one | Upload tells you which fonts are replaced. Use Arial, Times New Roman, Courier New, Calibri or Cambria to keep the layout exactly: Fonts in your Word template |
| A Word checkbox does not print, or sits on the next word | The box glyph came from a font without a proper one (fixed in 1.3) | Nothing to change in the template: the boxes are now drawn in DejaVu Sans |
| A formatting code did nothing | The code is misspelled — unknown codes are ignored rather than failing the document | Validate lists every unknown code with the ones it knows |
Placeholder basics: Writing a template. Repeating rows: Lists and repeating rows. Conditions: Conditional parts. Formatting codes: Making a value fit the space you left for it.