PdfSharpWithHebrewSupport 6.2.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package PdfSharpWithHebrewSupport --version 6.2.4
                    
NuGet\Install-Package PdfSharpWithHebrewSupport -Version 6.2.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PdfSharpWithHebrewSupport" Version="6.2.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PdfSharpWithHebrewSupport" Version="6.2.4" />
                    
Directory.Packages.props
<PackageReference Include="PdfSharpWithHebrewSupport" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PdfSharpWithHebrewSupport --version 6.2.4
                    
#r "nuget: PdfSharpWithHebrewSupport, 6.2.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PdfSharpWithHebrewSupport@6.2.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PdfSharpWithHebrewSupport&version=6.2.4
                    
Install as a Cake Addin
#tool nuget:?package=PdfSharpWithHebrewSupport&version=6.2.4
                    
Install as a Cake Tool

PDFsharp Core build

PDFsharp is the Open Source library for creating and modifying PDF documents using .NET. It has an easy-to-use API that allows developers to generate or modify PDF files programmatically. PDFsharp can be used for various applications, including creating reports, invoices, and other types of documents.

This package does not depend on Windows and can be used on any .NET compatible platform including Linux and macOS.

See docs.pdfsharp.net for details.

See https://www.pdfsharp.com for professional support offers, premium technical advice, and contract work options. Choose a support plan that suits your needs. We offer a variety of options, from small projects to large teams, with flexible response times. Our team provides PDFsharp expert assistance, including implementation, optimization, and tailored solutions.

PdfSharpWithHebrewSupport

PdfSharpWithHebrewSupport is a small, backwards-compatible customization of PDFsharp that adds a simple Hebrew‑script (RTL) preprocessing step before text is drawn or measured. It reorders RTL runs for Hebrew-script characters so Hebrew/Yiddish text renders in natural visual order without full shaping engines.

Version: 6.2.3-hebrew1
Targets: net8.0, net9.0, net10.0, netstandard2.0
License: MIT (based on PDFsharp)

Features

  • Preprocesses text passed to PDFsharp to reverse RTL runs for characters in:
    • Hebrew block (U+0590..U+05FF)
    • Hebrew presentation forms (U+FB1D..U+FB4F)
  • Minimal change: uses the existing PDFsharp render pipeline and keeps API compatibility.
  • Includes unit tests that verify mixed LTR/RTL run reordering.

Why use this

PDFsharp does not include a full Unicode BiDi + shaping engine. For Hebrew and other Hebrew‑script languages, a simple run reordering is often enough. This package provides that preprocessing without adding heavy dependencies.

Install

dotnet CLI:

dotnet add package PdfSharpWithHebrewSupport --version 6.2.3-hebrew1

PackageReference:

<PackageReference Include="PdfSharpWithHebrewSupport" Version="6.2.3-hebrew1" />

Usage

Install the package and use PDFsharp as usual. The package hooks into the render pipeline and reorders RTL runs before text is measured or drawn.

Example — inspect preprocessed text:

var renderEvents = new PdfSharp.Events.RenderEvents();
renderEvents.PrepareTextEvent += (s, e) =>
{
    // e.Text has had Hebrew-script RTL runs reordered already
    Console.WriteLine(e.Text);
};

If you need custom behavior, you can still subscribe to PrepareTextEvent and modify e.Text.

Limitations

  • This is a heuristic limited to Hebrew-script characters. It does NOT:
    • Implement the full Unicode BiDi algorithm for every edge case.
    • Provide contextual glyph shaping (Arabic, Persian, Urdu, Syriac, N’Ko, Adlam, etc.)
  • For Arabic-family or other joining scripts you must use a shaping engine (e.g., HarfBuzz) and feed shaped glyphs into the renderer.

Changelog (high level)

  • 6.2.3-hebrew1: Added Hebrew-script RTL preprocessing and unit tests to reorder RTL runs prior to rendering.

Source & Attribution

This package is built from PDFsharp sources (original authors: empira Software GmbH). This fork/custom build is published by the package author listed on nuget.org.

Original project: https://github.com/empira/PDFsharp
This fork: https://github.com/ronenfe/PDFsharp

Support

Open issues on the package repository for bug reports or requests (RTL ranges, tests, or shaping integration guidance).

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
6.2.5 473 12/10/2025
6.2.4 466 12/10/2025
6.2.3-hebrew 465 12/10/2025
0.1.0 425 12/10/2025

This is a version of PDFsharp compatible with .NET 6 and higher.
The package ‘PdfSharp’ can be used on any platform including Windows and Linux. The Target Frameworks are ‘net8.0’, ‘net9.0’, ‘net10.0’, and ‘netstandard2.0’.
The packages ‘PDFsharp-gdi’ and ‘PDFsharp-wpf’ can be used under Windows only. The Target Frameworks are ‘net8.0-windows’, ‘net9.0-windows’, ‘net10.0-windows’, and ‘net462’.
We also publish packages that contain PDFsharp plus MigraDoc.
See the project docs site for further information:
https://docs.pdfsharp.net/link/readme-v6.2.html