Issue
Non-Latin characters (such as, Nepali, Chinese, Arabic, etc.) render as incorrect glyphs in PDFs generated by Pega Infinity 25.1.1. After updating from Pega 8.7.6 to Pega Infinity 25, PDFs generated through standard activities displayed correct English text but corrupted non-Latin characters.
Symptoms and Impact
PDFs display garbled text instead of proper non-Latin characters, affecting readability and user experience. The issue was observed after updating to Pega Infinity 25.1.1 when generating PDFs through standard activities and the smart PDF approach.
Steps to Reproduce
- Configure a Create PDF smart shape in an existing workflow.
- Ensure that the section referenced in the PDF configuration contains non-Latin characters (such as Nepali, Arabic, Bengali, Chinese etc.)
- Create and process a case at runtime to generate the PDF.
- Open the PDF to verify the incorrect character rendering.
Root Cause
The issue was caused by a documentation gap and an incorrect CSS font-family configuration in pyCompactStylesforPDF. The client used binary font file names such as ArabicFont instead of actual font-family names which will be present when you open the font file at the top such as Noto Sans Arabic. Earlier PD4ML versions resolved fonts using binary file names, but newer versions require actual font-family names in CSS. This issue was occurred after PD4ML was updated to version 4.0.19 and later. In Pega Platform 25.1.1, which bundles PD4ML 4.0.19 Jakarta, the incorrect configuration caused non-Latin scripts such as Arabic, Nepali, and Chinese to render incorrectly in generated PDFs, especially when using the smart PDF approach.
Solution
Update the CSS font-family values in pyCompactStylesforPDF to use the actual font-family names instead of binary font file names.
Additionally, the vendor PD4ML has confirmed the behavior and published supporting guidance.
References
For more information, refer to the PD4ML blog on Tweaking Fonts in PDF.