Skip to content

Issue 254 PDFs Could Not Print Polish

Ed Mozley edited this page Nov 7, 2026 · 1 revision

PDFs could not print Polish (or Hindi, Tamil, Bengali...)

Reported: #254, by an organisation evaluating FreeITSM, November 2026 · Modules: Knowledge, and every other PDF export · Fixed in: the release after 4.10.0 (changelog #2745)


What you saw

Exporting a Knowledge article to PDF (Share → PDF) with Polish text - Zażółć gęślą jaźń, ĄĆĘŁŃÓŚŹŻ - gave a PDF where:

  • the Polish letters were missing or wrong,
  • the text ran past the right margin,
  • the logo was FreeITSM's, not the organisation's.

The article itself looked perfect on screen.

What was actually wrong

Three things, two of them shared by every PDF in FreeITSM:

  1. The fonts had no Polish letters. PDFs were made by jsPDF using the 14 standard PDF fonts, which only contain Western European letters. Every jsPDF version is the same, and FreeITSM was already on the latest.
  2. Wrong widths, so wrong wrapping. Text is wrapped by measuring it, and letters the font does not have measure wrongly - so lines broke in the wrong place and ran off the page.
  3. A hard-coded logo. The Knowledge export always used assets/images/CompanyLogo.png - FreeITSM's own file.

Looking further: a better font would have fixed Polish but not Hindi, Tamil, Bengali and the other scripts whose letters join, because jsPDF has no shaping engine. FreeITSM ships nine of those languages.

The fix

Every PDF export moved to PDFKit, through one shared writer, with bundled Noto fonts. PDFKit shapes text (it joins Hindi letters, reorders vowel signs), so every language FreeITSM ships now prints correctly - in Knowledge, Report Packs, form submissions, Morning Checks, the Assets table, labels, Change Management, the mappers and the organisation chart. Everything is bundled, so it works on servers with no internet.

For the Knowledge export specifically:

  • text is measured with the font it prints in, so it stays inside the margins;
  • the organisation's own logo is used, or none if one has not been set - never FreeITSM's;
  • tables print as tables (header row, columns, wrapping cells) instead of cell | cell lines.

The whole story - the options weighed, why PDFKit, licensing: PDF exports moved to PDFKit. How the code works: PDF writer - Developer Guide.

How it was proved

Each export was run in a real browser against a FreeITSM install and the PDF was opened and looked at. The Knowledge test article - Polish, Hindi, Tamil, lists, code and a table - printed every letter correctly, inside the margins, with the organisation's logo. php tests/pdf-writer.php - 20 checks, including that nothing is fetched from the internet. Details: PDF exports moved to PDFKit - how it was proved.

What this means for you

  • After upgrading, PDFs print Polish - and every language FreeITSM ships - correctly. Nothing to set up.
  • Chinese, Japanese and Korean are not covered yet (no bundled font).
  • If your organisation has not set a logo (System → Branding), the Knowledge PDF now has none instead of FreeITSM's.

Related

FreeITSM

Getting Started

Modules

Multi-tenancy (planned)

Responses to feedback

Blue sky thinking

Bugs resolved

Links

Clone this wiki locally