I am facing an issue with PDF generation in my FlutterFlow project, specifically related to Kurdish letters. The characters “ێ” (U+06CE), “ڵ” (U+06B5), and “ە” (U+06D5) are not rendering correctly when generating a PDF. These letters do not concatenate properly (i.e., they appear disjointed) in the PDF, although they render fine in the FlutterFlow UI and when exporting from applications like MS Word to PDF.
What I’ve Tried:
Fonts:
I have used several fonts that support Kurdish, including NotoSansArabic and NotoSansKurdish. These fonts work perfectly in the FlutterFlow UI and in other environments like MS Word.
PDF Libraries:
I’ve tested both the Syncfusion PDF package and the pdf/printing package in Flutter, but the issue persists across both libraries.
Steps to Reproduce:
Create a simple PDF with the following text:
لێ زان ێ ڵ ە
Use a font that supports Kurdish (e.g., NotoSansArabic or NotoSansKurdish).
Set the text direction to Right-to-Left (RTL).
Generate the PDF using either the Syncfusion or pdf/printing package.
Expected Outcome:
The Kurdish characters “ێ”, “ڵ”, and “ە” should be properly connected and shaped, just as they are in the FlutterFlow UI and other text-processing software like MS Word.
Actual Outcome:
In the generated PDF, these characters appear disjointed and do not concatenate properly with the surrounding text. This issue seems isolated to the PDF generation process.
Packages I’ve Tried:
Syncfusion Flutter PDF
pdf/printing
Similar Issues:
There is a similar unresolved issue regarding Kurdish text rendering in the following link, which may help better understand the problem:
Stimulsoft Kurdish Unicode Issue
Additionally, similar issues exist for Arabic characters, but the solutions did not address my specific case:
StackOverflow: Character Splitting in Arabic PDF
Request for Help:
I would appreciate any guidance or potential solutions for resolving this issue. I am not sure if the problem is related to font rendering, text encoding, or some limitation in the PDF generation libraries. Has anyone encountered a similar issue or found a workaround?
2