ZingPDF 1.0.58
dotnet add package ZingPDF --version 1.0.58
NuGet\Install-Package ZingPDF -Version 1.0.58
<PackageReference Include="ZingPDF" Version="1.0.58" />
<PackageVersion Include="ZingPDF" Version="1.0.58" />
<PackageReference Include="ZingPDF" />
paket add ZingPDF --version 1.0.58
#r "nuget: ZingPDF, 1.0.58"
#:package ZingPDF@1.0.58
#addin nuget:?package=ZingPDF&version=1.0.58
#tool nuget:?package=ZingPDF&version=1.0.58
ZingPDF
ZingPDF is a proprietary .NET 8 PDF library for loading, creating, editing, signing, validating signatures, redacting, and saving PDFs in C#.
It covers the PDF jobs many applications need first: fluent PDF authoring, Liquid HTML template rendering through a companion package, existing-PDF page editing, text extraction, form creation and completion, signing, signature validation, encryption, redaction, metadata updates, and rewritten saves without prior incremental history.
Installation
dotnet add package ZingPDF
Quick start
Create a new PDF with the fluent API:
using ZingPDF;
using ZingPDF.Graphics;
await Pdf.New()
.Page(page => page
.Size(595, 842)
.Text(text => text
.Value("Hello from ZingPDF")
.HelveticaBold()
.FontSize(24)
.At(48, 780))
.Rectangle(box => box
.At(48, 720)
.Size(220, 48)
.Fill(RGBColour.PrimaryBlue)))
.SaveAsync(File.Create("hello.pdf"));
Edit an existing PDF:
using var input = File.OpenRead("input.pdf");
using var output = File.Create("edited.pdf");
using var pdf = Pdf.Load(input);
await pdf.Pages(pages => pages
.Page(1, page => page
.Text(text => text
.Value("Approved")
.HelveticaBold()
.FontSize(18)
.At(48, 780))))
.SaveAsync(output);
Create a blank PDF with the standard page API:
using ZingPDF;
using ZingPDF.Fonts;
using ZingPDF.Graphics;
using ZingPDF.Syntax.CommonDataStructures;
using var pdf = Pdf.Create();
var page = await pdf.GetPageAsync(1);
var font = await pdf.RegisterStandardFontAsync(StandardPdfFonts.Helvetica);
await page.AddTextAsync(
"Hello from ZingPDF",
Rectangle.FromDimensions(320, 72),
font,
18,
RGBColour.Black);
await pdf.SaveAsync(File.Create("hello-standard.pdf"));
Read displayed page geometry and translate an overlay point:
using ZingPDF;
using ZingPDF.Elements.Drawing;
using var input = File.OpenRead("input.pdf");
using var pdf = Pdf.Load(input);
var page = await pdf.GetPageAsync(1);
var geometry = await page.GetGeometryAsync();
var displayPoint = geometry.PageToDisplay(new Coordinate(72, 144));
Console.WriteLine($"{geometry.DisplayWidth} x {geometry.DisplayHeight}");
Console.WriteLine($"Preview point: {displayPoint.X}, {displayPoint.Y}");
GetGeometryAsync() resolves inherited MediaBox, CropBox, and Rotate values. PDF page coordinates use a bottom-left origin. Display coordinates use a top-left origin after the visible page box and clockwise page rotation are applied.
Create and fill a PDF form:
using ZingPDF;
using ZingPDF.Elements.Drawing;
using ZingPDF.Elements.Forms.FieldTypes.Text;
using ZingPDF.Syntax.CommonDataStructures;
using var pdf = Pdf.Create();
var form = await pdf.GetOrCreateFormAsync();
await form.AddTextFieldAsync(
1,
"Customer.Name",
Rectangle.FromCoordinates(
new Coordinate(48, 720),
new Coordinate(280, 752)),
options => options.DefaultValue = "Ada Lovelace");
var nameField = await form.GetFieldAsync<TextFormField>("Customer.Name");
await nameField.SetValueAsync("Ada Lovelace");
await pdf.SaveAsync(File.Create("form-created-and-filled.pdf"));
Redact sensitive text and save rewritten output:
using var input = File.OpenRead("sensitive.pdf");
using var output = File.Create("redacted.pdf");
using var pdf = Pdf.Load(input);
var plan = await pdf.RedactionAsync();
await plan.MarkTextAsync("Secret");
await plan.ApplyAsync(new PdfRedactionOptions
{
OverlayText = "REDACTED"
});
await pdf.SaveAsync(output);
Sign a visible signature field:
using System.Security.Cryptography.X509Certificates;
using ZingPDF.Elements.Forms.FieldTypes.Signature;
using var certificate = new X509Certificate2("signing.pfx", "password");
using var input = File.OpenRead("contract.pdf");
using var output = File.Create("contract-signed.pdf");
using var pdf = Pdf.Load(input);
var form = await pdf.GetFormAsync();
var signatureField = await form.GetFieldAsync<SignatureFormField>("Approval.Signature");
await signatureField.SignAsync(certificate, new PdfSignatureOptions
{
SignerName = "Ada Lovelace",
Reason = "Approved"
});
await pdf.SaveAsync(output);
Validate a signed PDF:
using ZingPDF;
using var input = File.OpenRead("contract-signed.pdf");
using var pdf = Pdf.Load(input);
var signatures = await pdf.GetSignaturesAsync();
var result = await signatures[0].ValidateIntegrityAsync();
if (result.Status == PdfSignatureValidationStatus.Valid)
{
Console.WriteLine("The signed byte ranges match the detached CMS signature.");
}
Main workflows
- create new PDFs with
Pdf.New()orPdf.Create() - create PDFs from Liquid HTML templates with
ZingPDF.Templates.LiquidHtml - convert HTML strings and URLs to PDF with
ZingPDF.FromHTML - edit existing PDFs with
pdf.Pages(...) - append, insert, delete, export, merge, or split pages
- read cropped and rotated page display geometry and convert overlay coordinates
- add text, images, vector drawing, and watermarks to pages
- register standard PDF fonts and embedded TrueType fonts
- create, fill, flatten, sign, and validate AcroForm fields
- inspect push-button captions and action metadata
- read and update metadata
- inspect the catalog, trailer, page tree, and indirect objects through
pdf.Objects - trace named parser and document-workflow timings with
PerformanceTrace - extract text from full documents or individual pages
- redact exact text matches or explicit regions with rewritten-file output
- compress output and tune image quality
- decrypt, encrypt, restrict permissions, and rewrite PDFs without prior incremental history
Documentation
- repository: github.com/ZingPDF/ZingPDF
- docs: zingpdf.dev/docs.html
- guides: zingpdf.dev/guides.html
- capability matrix: zingpdf.dev/capabilities.html
- performance: zingpdf.dev/performance.html
- API reference: zingpdf.dev/api/
- examples folder: github.com/ZingPDF/ZingPDF/tree/main/examples
- HTML conversion guide: zingpdf.dev/convert-html-to-pdf-csharp.html
- form creation guide: zingpdf.dev/create-pdf-form-fields-csharp.html
- push-button metadata guide: zingpdf.dev/inspect-pdf-push-button-actions-csharp.html
- object access guide: zingpdf.dev/inspect-pdf-object-graph-csharp.html
- performance tracing guide: zingpdf.dev/trace-pdf-performance-csharp.html
Package split
ZingPDF: core PDF load, author, edit, sign, signature validation, redact, form, metadata, and encryption APIsZingPDF.GoogleFonts: download and register Google FontsZingPDF.OCR: OCR support for scanned and image-based PDF pagesZingPDF.FromHTML: render HTML to PDF through PuppeteerSharpZingPDF.Templates: shared contracts for template renderer packagesZingPDF.Templates.LiquidHtml: render Liquid HTML templates to PDF through Fluid andZingPDF.FromHTML
Licensing
ZingPDF is proprietary software. Review LICENSE.txt and ensure you have an active paid subscription with sufficient seats, or another applicable commercial agreement, before commercial use or commercial bundling.
Evaluation and other non-commercial use are free.
Support and compatibility
See SUPPORT.md in the package root or docs/project/SUPPORT.md in the repository for the current support stance and release-readiness notes.
| 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 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 was computed. 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. |
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 9.0.4)
- MorseCode.ITask (>= 2.0.3)
- Nito.AsyncEx.Coordination (>= 5.1.2)
- SixLabors.ImageSharp (>= 3.1.11)
- SkiaSharp (>= 3.116.1)
- SkiaSharp.NativeAssets.Linux.NoDependencies (>= 3.116.1)
- System.Security.Cryptography.Pkcs (>= 10.0.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on ZingPDF:
| Package | Downloads |
|---|---|
|
ZingPDF.FromHTML
HTML-to-PDF conversion helpers for ZingPDF using PuppeteerSharp. |
|
|
ZingPDF.GoogleFonts
Google Fonts integration package for ZingPDF. |
|
|
ZingPDF.OCR
OCR companion package for image-based PDF pages in ZingPDF. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.58 | 182 | 5/28/2026 |
| 1.0.57 | 161 | 5/25/2026 |
| 1.0.56 | 171 | 5/15/2026 |
| 1.0.54 | 167 | 4/19/2026 |
| 1.0.49 | 161 | 4/9/2026 |
| 1.0.48 | 155 | 4/7/2026 |
| 1.0.45 | 155 | 4/6/2026 |
| 1.0.44 | 154 | 4/6/2026 |
| 1.0.43 | 160 | 4/6/2026 |
| 1.0.40 | 145 | 4/5/2026 |
| 1.0.36 | 122 | 4/5/2026 |
| 1.0.35 | 123 | 4/4/2026 |
| 1.0.34 | 121 | 4/4/2026 |
| 1.0.33 | 125 | 4/4/2026 |
| 1.0.32 | 129 | 4/3/2026 |
| 1.0.31 | 122 | 4/3/2026 |