XLibur.Fonts.PinataLabs
0.800.0
dotnet add package XLibur.Fonts.PinataLabs --version 0.800.0
NuGet\Install-Package XLibur.Fonts.PinataLabs -Version 0.800.0
<PackageReference Include="XLibur.Fonts.PinataLabs" Version="0.800.0" />
<PackageVersion Include="XLibur.Fonts.PinataLabs" Version="0.800.0" />
<PackageReference Include="XLibur.Fonts.PinataLabs" />
paket add XLibur.Fonts.PinataLabs --version 0.800.0
#r "nuget: XLibur.Fonts.PinataLabs, 0.800.0"
#:package XLibur.Fonts.PinataLabs@0.800.0
#addin nuget:?package=XLibur.Fonts.PinataLabs&version=0.800.0
#tool nuget:?package=XLibur.Fonts.PinataLabs&version=0.800.0
XLibur.Fonts.PinataLabs
An optional font engine for XLibur that uses PinataLabs.Typography for text measurement and font metrics.
PinataLabs.Typography is a maintained fork of SixLabors.Fonts 1.x, under the Apache 2.0 license. This package replaces XLibur.Fonts.SixLabors.V1, which is no longer published: it has the same API and gives the same measurements, and its dependency still receives updates.
Installation
dotnet add package XLibur.Fonts.PinataLabs
Usage
XLibur's default font engine is SkiaSharp. This engine is opt-in, so register it at startup:
using XLibur.Excel;
using XLibur.Fonts.PinataLabs;
// Make PinataLabs the default engine for every workbook:
PinataLabsFontBootstrap.Register();
using var wb = new XLWorkbook();
// Or use system fonts with a named fallback, for one workbook:
var options = new LoadOptions { FontEngine = new PinataLabsFontEngine("Arial") };
using var wb2 = new XLWorkbook(options);
// Or use stream-based fonts only (useful for Blazor, serverless, etc.):
using var fontStream = File.OpenRead("MyFont.ttf");
var engine = PinataLabsFontEngine.CreateOnlyWithFonts(fontStream);
using var wb3 = new XLWorkbook(new LoadOptions { FontEngine = engine });
The engine resolves system fonts and falls back to an embedded metric-only Calibri-compatible font (CarlitoBare), so text measurement works even where no system fonts are installed.
Migrating from XLibur.Fonts.SixLabors.V1
Replace the package reference, then rename the types:
| XLibur.Fonts.SixLabors.V1 | XLibur.Fonts.PinataLabs |
|---|---|
using XLibur.Fonts.SixLabors.V1; |
using XLibur.Fonts.PinataLabs; |
DefaultFontEngine |
PinataLabsFontEngine |
SixLaborsV1FontBootstrap.Register() |
PinataLabsFontBootstrap.Register() |
The constructor and the Instance, CreateOnlyWithFonts and CreateWithFontsAndSystemFonts members are unchanged. Unlike V1, this package has no module initializer: call PinataLabsFontBootstrap.Register() explicitly if you relied on V1 registering itself when its assembly loaded.
License
This package is licensed under MIT. PinataLabs.Typography is licensed under Apache 2.0.
| Product | Versions 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 is compatible. 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. |
-
net10.0
- PinataLabs.Typography (>= 0.1.0)
- XLibur (>= 0.800.0)
-
net11.0
- PinataLabs.Typography (>= 0.1.0)
- XLibur (>= 0.800.0)
-
net8.0
- PinataLabs.Typography (>= 0.1.0)
- XLibur (>= 0.800.0)
-
net9.0
- PinataLabs.Typography (>= 0.1.0)
- XLibur (>= 0.800.0)
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 |
|---|---|---|
| 0.800.0 | 91 | 11/1/2026 |
| 0.730.1-beta.1 | 58 | 10/26/2026 |