Printed Output Is Still the Final Deliverable
Most business-system data reaches customers as a single sheet of paper or a PDF: invoices, quotations, test certificates, shipping orders, payslips. Internal staff are the only ones who see the screens. Partners and customers see the printed output, so a mistake there becomes a question of trust in the company.
The trouble is that forms change all the time. Each customer wants product codes formatted its own way, the logo placed somewhere else, or a different remarks field. If the layout lives in source code, even "please move the company seal to the right" becomes a development ticket. After intake, scheduling, testing and waiting for a release slot, two weeks pass easily. A company running 30 form types for 100 customers sees a steady stream of these requests every month.
Comparing Implementation Approaches
| Approach | Changing a form | Performance | Cost |
|----------|-----------------|-------------|------|
| Commercial reporting tool | Easy with a visual designer | Strong for bulk output | License fees |
| HTML-to-PDF | Web developers edit it | Heavy, since it runs a browser engine | Mostly open source |
| PDF template filling | Good for fixed layouts | Fast | Check library licenses |
| Excel template output | Business users can edit it | Moderate | Low |
Commercial reporting tools come with a designer and a server engine, and they are widely used in enterprise projects.HTML-to-PDF has standardized on headless Chrome. The once-popular wkhtmltopdf has been archived and is a poor choice for new projects.PDF template filling: some libraries, such as iText, are AGPL-licensed. Review the terms before using them in a commercial service.Three problems come up regardless of the approach:
Fonts: if a CJK or other non-Latin font isn't installed on the server, characters break. Also confirm the font license (OFL, for example) allows embedding in PDFs.Page breaks: line-item table headers should repeat on each page, and the totals row should never end up alone on a new page.Overflow: a long item name can spill over the amount column. Set wrapping rules and maximum lengths up front.Separating Data from Layout
The key is to separate the output data API from the template. The API returns only structured data: header fields, line items and totals. The template owns the presentation.
Form selection: map customer → document type → template version, and fall back to a default form when no customer-specific form exists.Versioning: never overwrite templates. Keep every version and set an effective date, so a new form can be scheduled to take effect on a specific day.Who changes what: business users edit logos, wording, column order and font sizes in an admin screen. Only changes to the data structure, such as new fields or new calculation logic, go to developers.Bulk Output and Performance
Month-end closing often means printing invoices and tax documents all at once. At 1–2 seconds per document, 10,000 documents take roughly 3–6 hours sequentially. Eight parallel workers bring that down to about 20–40 minutes.
Asynchronous generation: put requests in a job queue, and show users progress plus a completion notice.Stored results: keep each generated PDF and serve the stored copy for reprints instead of regenerating it. If prices change and the document is rebuilt, it may no longer match what the customer received.Considerations in the Electronic-Document Era
Automated email delivery: log every send and its delivery status, and route failures to a resend queue.Tamper evidence: store a hash (SHA-256, for example) when each document is generated, and apply digital signatures where needed.Retention and format: under Korean law, tax records and supporting documents are generally kept for 5 years, and wage ledgers for 3 years. PDF/A, which embeds fonts, suits long-term archiving.Access control: employers are legally required to issue payslips, and payslips contain personal data. Separate print and download permissions, and log who printed what and when.Legacy Output Migration Checklist
Inventory every form and every customer-specific variant.Rank them by how often each was printed over the past year.Before go-live, run the same data through the old and new systems and compare the outputs side by side, including amounts, totals and page counts.Agree with business users on retiring forms that are rarely used.Better Output with POLYGLOTSOFT
When POLYGLOTSOFT builds business systems such as ERP, MES and WMS, we design the output data API, template versioning and bulk PDF generation together. We also handle legacy form migration and side-by-side output checks before go-live. After launch, our SM subscription plans keep form changes and day-to-day operations running smoothly. If every form change still means waiting weeks, contact us for a consultation.