Comprehensive PDF toolkit for .NET — find/replace, merge, split, build, form filling, redaction, image editing, watermark, optimization, digital signatures, and PDF/A compliance. Zero external dependencies. Operates directly on PDF content streams. Features: text find/replace (regex, case-insensitive, whole-word, width-aware fitting), PDF merging (with page range selection), page splitting/extraction, fluent document builder (text, JPEG/PNG images, shapes), structured text extraction (with positions and font data), form filling (AcroForm text/checkbox/choice fields), text and area redaction, image finding and replacement (JPEG/PNG, by index or page range), text watermarks (configurable position, font size, color, opacity, page selection), stream compression and object deduplication, digital signatures (PKCS#7, net8.0), PDF/A validation and conversion (1b/2b/3b), document inspection. The netstandard2.0 build is compatible with .NET Framework 4.6.1+, .NET Core 2.0+, and .NET 5/6/7/8/9/10+. The net8.0 build adds digital signature support and is used by .NET 8, 9, 10, and later. NuGet resolves automatically. Made in USA.
$ dotnet add package Exis.PdfEditorHigh-performance PDF text find/replace library for .NET. Operates directly on PDF content streams without converting to intermediate formats. Zero external dependencies.
This package ships two builds:
| Build | Use with |
|---|---|
| netstandard2.0 | .NET Framework 4.6.1+, .NET Core 2.0+, .NET 5, .NET 6, .NET 7 |
| net8.0 | .NET 8+ (optimized) |
.NET Standard 2.0 acts as a bridge DLL — it is compatible with virtually every modern .NET runtime. NuGet automatically selects the correct build for your project. If your project targets .NET Framework 4.8, .NET Core 3.1, or .NET 6, the netstandard2.0 DLL is used. For .NET 8+ projects, the optimized net8.0 build is selected.
No additional configuration required. Just install the NuGet package:
dotnet add package Exis.PdfEditor
Or via the NuGet Package Manager in Visual Studio:
Install-Package Exis.PdfEditor
System.IO.Streamusing Exis.PdfEditor;
using Exis.PdfEditor.Licensing;
// Optional: activate with license key for documents over 3 pages
ExisLicense.Initialize("XXXX-XXXX-XXXX-XXXX");
// Find and replace text in a PDF
var result = PdfFindReplace.Execute(
"input.pdf",
"output.pdf",
"old text",
"new text");
Console.WriteLine($"Replaced {result.TotalReplacements} occurrences");
// Single find/replace (file path)
PdfFindReplaceResult Execute(string inputPath, string outputPath,
string find, string replace, PdfFindReplaceOptions? options = null);
// Single find/replace (stream)
PdfFindReplaceResult Execute(Stream input, Stream output,
string find, string replace, PdfFindReplaceOptions? options = null);
// Multiple find/replace pairs
PdfFindReplaceResult Execute(string inputPath, string outputPath,
IEnumerable<FindReplacePair> pairs, PdfFindReplaceOptions? options = null);
// Extract all text
PdfTextResult ExtractText(string path);
PdfTextResult ExtractText(Stream stream);
// Extract text from specific pages
PdfTextResult ExtractText(string path, int[] pages);
// Get document metadata, fonts, page info
PdfDocumentInfo Inspect(string path);
PdfDocumentInfo Inspect(Stream stream);
var options = new PdfFindReplaceOptions
{
UseRegex = false, // Enable regex patterns
CaseInsensitive = false, // Case-insensitive matching
WholeWord = false, // Match whole words only
PreserveTextWidth = true, // Auto-scale replacement to match original width
Pages = null // Limit to specific pages (null = all)
};
Without a license key, full functionality is available for 14 days. After the evaluation period, processing is limited to the first 3 pages.
Purchase a license at officefindreplace.com for unlimited use.
Copyright (c) Exis LLC 2024-2026. All rights reserved. Commercial license required for production use. See LICENSE.md for details.
Made in USA.