PeachDrawing.Text 0.9.21

dotnet add package PeachDrawing.Text --version 0.9.21
                    
NuGet\Install-Package PeachDrawing.Text -Version 0.9.21
                    
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="PeachDrawing.Text" Version="0.9.21" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PeachDrawing.Text" Version="0.9.21" />
                    
Directory.Packages.props
<PackageReference Include="PeachDrawing.Text" />
                    
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 PeachDrawing.Text --version 0.9.21
                    
#r "nuget: PeachDrawing.Text, 0.9.21"
                    
#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 PeachDrawing.Text@0.9.21
                    
#: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=PeachDrawing.Text&version=0.9.21
                    
Install as a Cake Addin
#tool nuget:?package=PeachDrawing.Text&version=0.9.21
                    
Install as a Cake Tool

PeachDrawing.Text

Font loading, OpenType shaping, bidirectional text and Unicode text primitives for .NET, with no package dependencies. It is the text engine PeachPDF renders HTML with, published as its own package so other applications can use it too.

Status: pre-1.0. The engine is complete and in production use inside PeachPDF, and its public API is being published area by area. Font loading and matching (FontSet, TypefaceFamily, Typeface), what a typeface says about itself (TypefaceMetrics, glyph mapping, advances), shaping (Shaper, ShapeSettings, GlyphRun), glyph outlines and colour glyphs (GlyphOutline, ColorPalette, the COLR paint graph, bitmap glyphs) and the PeachDrawing.Text.Unicode namespace (bidirectional text, script itemization, OpenType tags, vertical orientation, hyphenation, emoji presentation) the MATH table (Typeface.MathData) and font subsetting for embedding (TypefaceExporter) and variable fonts (Typeface.WithAxes) are public today; paragraph layout is still internal and will follow. It is versioned in lockstep with PeachPDF (the same number for every release) and is a dependency of it.

What is in it:

  • Fonts: TrueType, OpenType (glyf and CFF), WOFF and WOFF2 loading; TrueType/OpenType collections; installed-font discovery on Windows, macOS, Linux (fontconfig) and Android; CSS Fonts 4 face matching by weight, width and style; unicode-range and glyph-coverage fallback.
  • Shaping: GSUB and GPOS (ligatures, kerning, mark attachment, contextual and chaining lookups), Arabic and Syriac joining, the Universal Shaping Engine for Devanagari, Bengali, Gujarati and Tamil, default-ignorable handling, and cmap format 14 variation sequences.
  • Outlines and colour: glyph outlines for glyf and CFF, COLR v0/v1 with CPAL, and CBDT/CBLC and sbix bitmaps.
  • Unicode: the Unicode Bidirectional Algorithm (UAX #9, checked against BidiCharacterTest), script itemization, vertical orientation, and TeX/Liang hyphenation for 73 languages.

Licence

BSD 3-Clause (see LICENSE). Parts of the font readers derive from PDFsharp (MIT), the TrueType bytecode interpreter and Adobe's CFF engine that grid-fit outlines are ported from FreeType (FreeType Project License, FTL.TXT, with Adobe's patent licence grant), several shaping algorithms are ports of HarfBuzz code (Old MIT), and the data tables come from the Unicode Character Database, the hyph-utf8 pattern collection and ICU's Thai and Khmer word lists; each of those notices is reproduced in THIRD-PARTY-LICENSES.md, which ships in this package.

Portions of this software are copyright © 1996-2026 The FreeType Project (https://freetype.org). All rights reserved. This software is based in part on the work of the FreeType Team.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on PeachDrawing.Text:

Package Downloads
PeachPDF

Renders HTML and CSS to PDF in pure .NET, with no browser or external process: HTML parsing, the CSS cascade, layout, SVG, MathML and the PDF writer all run in-process.

PeachDrawing.Core

The drawing-surface abstraction (Canvas, RenderContext, Brush, Pen, Font, Image, GraphicsPath and the paint-ready value types) PeachPDF targets to write PDF. A user of PeachDrawing.Core can build their own render target the same way PeachPDF targets it to PDF, or take PeachDrawing's own raster Canvas implementation.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.9.21 86 10/2/2026
0.9.20 96 9/26/2026