Print Configuration¶
Applies to: e-Invoice · e-Way Bill · Which modules do I have?
Purpose¶
Configure how Complifly renders compliant documents: which template, whose branding, and how the statutory elements appear. Also covers the rendering dependency whose absence produces a system that works perfectly until someone prints.
Audience¶
System administrators and implementation consultants, with the customer's tax lead for statutory content.
Prerequisites¶
- Installation Guide complete, including the rendering dependencies
- Branding assets collected — see Information Checklist
- Statutory declarations supplied by the customer's tax lead
- Administrator access
Steps¶
1. Understand what printing does and does not do¶
There are two print formats, and the difference between them is the single most important thing on this page.
| Format | Rendered by | Available |
|---|---|---|
| NIC format | The government, fetched through the provider | Only for 2 days after generation |
| Branded Print | Complifly, from the signed invoice and signed QR captured at generation | Always |
Branded Print is the one that always works. It renders from data captured at generation time and held locally, which is what makes an e-invoice print valid. It needs no provider call and is unaffected by a provider outage.
The NIC format has a hard two-day window. The government stops serving the official copy two days after generation. Complifly caches that copy at generation time precisely so it remains available afterwards — but if the copy was never cached and two days pass, it is permanently unobtainable. No retry, escalation or support action reopens the window.
Two further behaviours follow from this:
- A cached NIC copy prints with no provider call — fast, free, and available during an outage.
- The cache is deliberately bypassed when the e-Way Bill was updated after the copy was cached, so the reprint reflects current bill details. That forces a fresh provider call, and therefore can fail if the window has since closed.
Diagnose accordingly: a print failure is not always local. Branded Print failing is a rendering or configuration problem. NIC format failing may be the closed two-day window — which is a statutory-style constraint, not a fault, and whose answer is Branded Print.
2. Confirm the rendering dependencies¶
Rendering runs a headless browser on the application host. On minimal server images the system libraries it needs are frequently absent, and their absence produces a system where everything works until someone prints.
Verify with a real render, not by reading a package list.
3. Choose the template¶
Templates control layout and which fields appear where. Select per company, and per GSTIN where they differ.
| Consideration | Guidance |
|---|---|
| Statutory elements must be present and legible | The signed QR code, IRN, acknowledgement number and date |
| Customer branding | Logo, colours, footer |
| Language and formatting | Number and date formats consistent with the customer's convention |
| Paper size and margins | Confirm against the customer's actual stationery and printers |
4. Load branding¶
| Asset | Requirement |
|---|---|
| Logo | Legible at print size. A high-resolution logo scaled down often is not. Test on paper |
| Footer text | Supplied by the tax lead, not drafted by the implementer |
| Declarations | Statutory wording, supplied by the customer |
5. Get the signed QR code right¶
The signed QR code is the evidence of registration and the element most likely to be got wrong in a way nobody notices until an inspection.
| Requirement | Why |
|---|---|
| Present on every registered document | Statutory |
| Large enough to scan reliably | A QR that scans on screen may not scan when printed at a smaller size |
| Not overlapped or cropped | Template changes are the usual cause |
| Sufficient quiet space around it | Scanners need the margin |
| Verified by scanning a printed copy | Not a screen preview. Print it and scan it with a phone |
The last row is the check that matters. A QR code that renders on screen and fails on paper is a compliance failure discovered by an inspector.
6. Configure per GSTIN where needed¶
Different registrations may need different templates, logos or declarations — a group with distinct trading names, for instance. Configure per GSTIN rather than forcing one template on all.
7. Test a real print¶
Print a real document, on the customer's own printer and stationery, and check it as a physical artefact:
| Check | Why it fails on paper but not on screen |
|---|---|
| QR scans | Scaling and print quality |
| Logo legible | Downscaling |
| Nothing cropped | Margins and paper size |
| Text readable | Font size at actual scale |
| Fits the page count expected | Multi-line documents overflow unexpectedly |
Validation¶
| Check | Method | Pass condition |
|---|---|---|
| Rendering works at all | Render one document | A PDF is produced |
| Signed QR present | Inspect the output | Present on every registered document |
| QR scans from paper | Print it and scan with a phone | Scans reliably. Do not accept a screen scan as evidence |
| Statutory fields present | Compare against the customer's compliance checklist | IRN, acknowledgement number and date all present |
| Branding correct | Print and inspect | Logo legible, footer correct |
| Per-GSTIN templates apply | Print one document per registration | Each carries its own branding |
| Multi-line documents render | Print a document with many lines | Paginates correctly; nothing cropped or lost |
| Bulk print works at real volume | Print a realistic batch | Completes without exhausting memory |
| Download works | Download a rendered document | Downloads successfully. Failure here is usually the content-security policy, not printing |
| Cached documents remain valid | Reprint a document printed earlier | Identical output |
Troubleshooting¶
| Symptom | Cause | Action |
|---|---|---|
| Printing fails, everything else works | Rendering system libraries absent on the host | Install them. This is an operating-system dependency, not a setting |
| Bulk print fails while single prints succeed | Memory exhausted by concurrent rendering | Reduce batch size, or raise memory. See Sizing and Capacity |
| QR scans on screen, not on paper | Rendered too small, cropped, or without quiet space | Adjust the template and re-test on paper |
| QR absent | Document not registered, or the template omits it | Check the document's status first. An unregistered document has no QR to print |
| Logo illegible | High-resolution image downscaled, or wrong aspect ratio | Supply an asset sized for print |
| Wrong branding on some documents | Configuration set per company where it should be per GSTIN | Configure per registration |
| Content cropped at the margins | Paper size or margins mismatched to the customer's stationery | Correct the template and print again |
| Download link fails | Download origin blocked by proxy or content-security policy | Downloads use a separate origin by design. See Domains and URLs |
| Print looks different after an upgrade | Template changed in the release | Check the release notes and re-verify the QR on paper |
| A document cannot be printed at all | Outside the retrievable print horizon | Check the configured horizon. See Environment Variables |
Related Articles¶
- Environment Variables — print horizon settings
- Domains and URLs — where files are served from
- Sizing and Capacity — rendering memory
- e-Invoice Module — what is being printed
- Information Checklist — collecting branding assets