See it in action

Real documents, rendered in pure C#.

No Chromium. No headless browser. One ~828 KB managed DLL, zero dependencies. Each document below is produced by the engine itself — copy the C# and run it.

Multi-page bank statement rendered from HTML to PDF in C#

Bank statement

Multi-page transaction statements with repeating headers, running balances and precise table alignment — pixel-consistent every run.

using Bhowra.Ink;

byte[] pdf = HtmlConverter.ConvertToBytes(statementHtml);
File.WriteAllBytes("statement.pdf", pdf);
View sample → Get on NuGet →
Salary payslip and CTC annexure rendered from HTML to PDF in .NET

Payslip & CTC annexure

Branded salary slips with earnings/deductions tables, net-pay summary and amount-in-words — 3 pages with a repeating ledger header.

using Bhowra.Ink;

var result = HtmlConverter.Convert(payslipHtml,
    new ConverterProperties { Title = "Payslip May 2026" });
result.SaveToFile("payslip.pdf");
View sample → Get on NuGet →
Bilingual Arabic and English payslip with right-to-left layout rendered to PDF in C#

Arabic & right-to-left

Production-grade Arabic shaping and bidirectional layout for bilingual GCC documents — full right-to-left tables, GOSI/SANED breakdown, WPS reference. No external shaping engine.

using Bhowra.Ink;

// RTL + Arabic shaping are automatic from the HTML dir/lang attributes.
byte[] pdf = HtmlConverter.ConvertToBytes(arabicPayslipHtml);
File.WriteAllBytes("payslip-gcc.pdf", pdf);
View sample → Get on NuGet →
Bilingual Arabic and English ZATCA tax invoice rendered to PDF in C#

Tax invoice · bilingual Arabic/English

Bilingual Arabic/English tax-invoice layout with VAT breakdown, seller/buyer headers, and line items. Renders the human-readable buyer-facing PDF.

using Bhowra.Ink;

// Renders the visual invoice layout — Arabic RTL + English LTR in one document.
byte[] pdf = HtmlConverter.ConvertToBytes(invoiceHtml);
File.WriteAllBytes("invoice.pdf", pdf);
// PDF/A-3 hybrid invoice with embedded XML + TLV QR
var props = new ConverterProperties { PdfA = PdfAConformance.PdfA3B, QrCodeData = tlvQr }
    .AttachFile("invoice.xml", ublXml, "application/xml", afRelationship: "Alternative");

byte[] pdf = HtmlConverter.ConvertToBytes(invoiceHtml, props);
View sample → Get on NuGet →

Bhowra.Ink renders the invoice PDF. XML signing and tax-authority submission remain your pipeline’s responsibility.

Render documents like these.

Add Bhowra.Ink to your project and turn your own HTML templates into production PDFs — no browser required.

Get Bhowra.Ink on NuGet → See the full library