Global scripts · .NET 8
Bhowra.Ink renders correct Arabic and Hebrew bidirectional text — contextual letterforms, right-to-left layout, correct extraction order — with no Chromium and no headless browser. Verified on ZATCA tax invoices and UAE/Saudi payslips.
Why Arabic PDFs usually come out wrong
Correct Arabic rendering isn't just "right-to-left text" — it requires contextual letterform shaping and bidirectional layout that small or archived rendering engines typically never implemented:
Arabic letters change shape depending on their position in a word. Engines without shaping support (GSUB/GPOS) render each letter in isolation — disconnected and unreadable.
Mixed Arabic/Latin content (an invoice number inside Arabic text) needs correct bidirectional algorithm handling, or numbers and Latin fragments render in the wrong position.
Even when the glyphs look right visually, copy-pasting or extracting text from the PDF can come out in the wrong logical order if the underlying text run isn't encoded correctly.
The fix — shaping and bidi, bundled in
Bhowra.Ink — a zero-dependency HTML-to-PDF library on NuGet — bundles Arabic and Hebrew fonts with full contextual shaping and bidirectional layout support, with no extra packages to install:
using Bhowra.Ink;
string html = @"
<html dir="rtl" lang="ar">
<body style="font-family:sans-serif">
<h1>فاتورة ضريبية</h1>
<p>المبلغ الإجمالي: 1,250 ر.س</p>
</body>
</html>";
// One in-process call — shaping, bidi, and RTL layout
// are handled automatically.
byte[] pdf = HtmlConverter.ConvertToBytes(html);
Arabic, Hebrew, Devanagari, and Thai fonts are embedded with zero setup — covering Gulf/MENA, South Asia, and Southeast Asia document formats out of the box.
| Bhowra.Ink | Lightweight / archived HTML-to-PDF engines | |
|---|---|---|
| Arabic contextual shaping (GSUB/GPOS) | ✅ Bundled, zero setup | ❌ Often unsupported |
| Right-to-left bidirectional layout | ✅ Correct mixed RTL/LTR | Frequently broken ordering |
| Text extraction order | Correct logical order | Can extract out of order |
| Fonts required | Bundled in the assembly | Manual font installation/wiring |
| Verified on | ZATCA invoices, Gulf payslips | Varies |
Yes. Full bidirectional text layout for Arabic and Hebrew is bundled — no extra packages, no manual font wiring — including contextual letterform shaping (GSUB/GPOS), verified on ZATCA tax invoices and UAE/Saudi payslips.
Arabic, Hebrew, Devanagari, and Thai fonts are embedded with zero setup, covering Gulf/MENA, South Asia, and Southeast Asia markets. CJK (Chinese/Japanese/Korean) and Persian/Urdu cursive scripts are not currently supported.
Correct Arabic rendering requires contextual letterform shaping and right-to-left bidirectional layout — support that lightweight or archived rendering engines typically never implemented, so Arabic text renders as disconnected, wrongly-ordered glyphs.
Yes. Text extraction and copy-paste from the generated PDF preserves correct logical reading order for Arabic and Hebrew content, not just correct visual shaping.
Add Bhowra.Ink and generate correctly shaped Arabic PDFs in under a minute — no browser required.