Guides
The failures worth writing down are the ones that raise nothing. A render that crashes gets fixed the same day; a render that succeeds and produces the wrong document reaches a customer. These are fixes for that second kind, written for whatever you render with.
Missing fonts in headless Chrome on Docker
Why a slim image prints boxes instead of text, and why installing the Noto packages does not finish the job.
Arabic not showing in PDF from headless Chrome
Two failures wear the same complaint, and fixing the loud one leaves you in the quiet one.
Chinese characters not showing in a PDF
The text layer says the Chinese is there. The file size and the font list say it is not.
Russian and Cyrillic not rendering in a PDF
The one script where the fonts are usually innocent, and the Dockerfile is the wrong layer to reach for.
Hebrew not rendering correctly in a PDF
The letters are all there and the line reads backwards. Usually that is correct, and the test you reach for cannot tell.
Right-to-left text and layout in a PDF
The second half of the problem: columns, margins and a page footer that inherits nothing.
Table rows splitting across pages in a PDF
The row height decides it, not the table length, and the declaration everyone reaches for is already on.
Background colours missing from a PDF
The header is white and the text on it is grey, which is one adjustment rather than a missing colour.
Page numbers in a PDF from headless Chrome
The footer is almost always on the page. At about a twelfth of the height of body text.
Margins and page size in HTML to PDF
The rule everybody reaches for, @page { size: A4 }, changes nothing. The one next to it wins outright.
Headers and footers in HTML to PDF
A logo by URL is not slow to load in a header. It is never asked for.
Content drawn by JavaScript missing from a PDF
The wait everybody recommends is blind to a chart that arrives on a timer, and it returns early saying it is done.
Images missing from a generated PDF
Every setting usually blamed for this was measured drawing the image. Two things were not.