Exis.PdfEditor logo

PDF Find & Replace SDK for .NET

Find and replace text in PDF files programmatically with C#. Direct content stream editing — no conversion to DOCX, no external dependencies, no data loss.

dotnet add package Exis.PdfEditor

Why Exis.PdfEditor

How other libraries work

Most .NET PDF libraries — IronPDF, Spire.PDF, Aspose, Syncfusion — replace text by converting the PDF to an intermediate format, redacting text and drawing new text on top, or rebuilding pages from scratch.

This approach breaks:

  • Form fields and checkbox values
  • Digital signatures
  • Text spacing and kerning
  • Page layout and positioning
  • Bookmarks and link destinations

How Exis.PdfEditor works

Exis.PdfEditor parses PDF content streams directly at the byte level. It locates text in the actual PDF operators, modifies only the targeted string operands, and writes back using PDF incremental update.

Everything not touched stays byte-for-byte identical:

  • Form fields and AcroForms: untouched
  • Digital signatures on unmodified pages: preserved
  • Text spacing and kerning: preserved
  • Page layout and structure: preserved
  • Bookmarks, annotations, embedded files: preserved

Other libraries

PDF
Convert to intermediate
Modify
Convert back to PDF
Output (damaged)

Exis.PdfEditor

PDF
Parse content streams
Replace text operands
Incremental update
Output (identical except replaced text)

Code Samples

Replace text in a PDF — 3 lines of code

using Exis.PdfEditor;
using Exis.PdfEditor.Licensing;

ExisLicense.Initialize();  // Free 14-day trial — no key needed

var result = PdfFindReplace.Execute(
    "contract.pdf",
    "contract-updated.pdf",
    "Acme Corporation",
    "Globex Industries");

Console.WriteLine($"Replaced {result.TotalReplacements} occurrences " +
                  $"across {result.PagesModified} pages.");

Multiple replacements in one pass

var pairs = new[]
{
    new FindReplacePair("2025", "2026"),
    new FindReplacePair("Draft", "Final"),
    new FindReplacePair("CONFIDENTIAL", "PUBLIC"),
};

var result = PdfFindReplace.Execute(
    "report.pdf",
    "report-final.pdf",
    pairs);

Pattern-based replacement with regular expressions

var options = new PdfFindReplaceOptions { UseRegex = true };

// Replace all US phone numbers with a placeholder
var result = PdfFindReplace.Execute(
    "document.pdf",
    "redacted.pdf",
    @"\(\d{3}\)\s?\d{3}-\d{4}",
    "[PHONE REDACTED]",
    options);

Activate your subscription

// Purchase at officefindreplace.com/Home/pdf-find-replace-csharp — $499/developer/year
ExisLicense.Initialize("XXXX-XXXX-XXXX-XXXX");

// Unlimited pages, no restrictions, no console messages
var result = PdfFindReplace.Execute("large-doc.pdf", "output.pdf", "old", "new");

How Exis.PdfEditor compares

Feature Exis.PdfEditor IronPDF Spire.PDF Aspose.PDF Syncfusion
Direct content stream editing Renders HTML Redaction overlay Fragment replace Redaction overlay
Preserves form fields Partial Partial
Preserves digital signatures Unmodified pages
Preserves text spacing/kerning Partial
Zero native dependencies Pure .NET Chromium engine
DLL size < 500 KB ~250 MB ~20 MB ~40 MB ~15 MB
Batch multi-pair replacement Single pass Manual loop Manual loop Manual loop Manual loop
.NET Framework 4.8 .NET 6+ only
Cross-platform
Regex support
Price (per developer/year) $499 $749 $999 $1,175 $995*
Company HQ 🇺🇸 USA 🇺🇸 USA 🇨🇳 China 🇦🇺 Australia 🇺🇸 USA

Comparison based on publicly available documentation as of February 2026. Feature support may vary by version.
"Direct content stream editing" means the library modifies PDF text operators in-place without converting, re-rendering, or overlaying.

Features

Direct PDF editing

Modifies content stream operators. No intermediate conversion.

Zero dependencies

No Ghostscript, no LibreOffice, no Chromium. Pure managed .NET.

Lossless output

Forms, signatures, annotations, bookmarks — all preserved.

Multi-target

.NET 8+, .NET Framework 4.8, and .NET Standard 2.0.

Batch processing

Multiple find/replace pairs executed in a single pass.

Regular expressions

Full .NET regex support for pattern-based replacements.

Cross-platform

Windows, Linux, macOS. Anywhere .NET runs.

Small footprint

Single DLL, under 500 KB. No native binaries to deploy.

Pricing

Annual Subscription
$499
auto-renews yearly / cancel anytime
  • Unlimited pages
  • Unlimited files
  • All features included
  • Email support
  • Automatic annual renewal

Install the NuGet package and call ExisLicense.Initialize() — full functionality for 14 days. After trial, evaluation mode processes up to 3 pages per document. No watermarks. When ready, purchase a license key at officefindreplace.com/Home/pdf-find-replace-csharp.

Prices in US dollars. One key per developer. Works on dev machine, build server, and production — no per-machine or per-deployment limits.

How the trial works

Trial (Days 1–14)

  • Install the NuGet package
  • Call ExisLicense.Initialize()
  • Full access — unlimited pages
  • No key, no signup, no credit card

Evaluation (After Day 14)

  • Trial expires automatically
  • Library continues working
  • Limited to 3 pages per document
  • No watermarks on output
  • Your existing code keeps running

Licensed

  • Purchase key at officefindreplace.com/Home/pdf-find-replace-csharp
  • Call ExisLicense.Initialize("your-key")
  • Unlimited pages, no restrictions
  • Silent operation — no console messages

Your code does not change between trial and licensed mode. Just add your key when ready.

Built by Exis LLC

Made in USA — Exis LLC, New Jersey. US-based development and support.
Government-trusted — The same PDF engine powers Global Office Find Replace Professional, used by US federal agencies for document processing.
35+ years in software — 8 patents across document processing, sensors, cryptography, and industrial automation.
Responsive support — Direct email access to the development team. Not a ticketing queue.

Frequently Asked Questions

No. Exis.PdfEditor is a pure .NET library with zero external dependencies. It does not use Office, Acrobat, Ghostscript, LibreOffice, Chromium, or any other external tool.
IronPDF renders PDFs via a Chromium engine — it effectively re-creates the page, which destroys form fields, spacing, and signatures. Aspose.PDF uses a text fragment replacement approach that can shift positioning. Exis.PdfEditor operates directly on PDF content stream operators, preserving everything except the targeted text.
Form fields (AcroForms), checkbox values, radio buttons, digital signatures (on unmodified pages), annotations, bookmarks, embedded files, hyperlinks, and all layout and spacing. Only the text you target is modified.
Yes. The developer seat license covers your development machine, build server, and production deployment. No per-machine or per-deployment licensing.
The library enters evaluation mode. It continues working but limits processing to 3 pages per document. No exceptions thrown on small files, no watermarks added. Your existing code keeps running. Add a license key when you are ready.
Yes. The NuGet package includes a .NET Standard 2.0 build that works on .NET Framework 4.6.1 and later, including 4.8. It also ships a .NET 8 optimized build.
One license key per developer. The key lives in your source code. It works on your dev machine, build server, staging, and production without per-machine limits. For teams, each developer needs their own key. No machine fingerprinting or activation servers to manage.
Yes. PdfTextExtractor.ExtractText() returns the full text content. PdfInspector.Inspect() returns document metadata and page count — PdfInspector does not require a license at all.
Exis.PdfEditor works with text-based PDFs where text is encoded in content streams. For scanned documents where the content is a raster image, you would need to run OCR first to produce a text layer.
The library resolves font encodings automatically — ToUnicode CMaps, WinAnsiEncoding, MacRomanEncoding, custom encoding dictionaries with /Differences, and composite (CID/Type0) fonts for CJK text.

Start your 14-day free trial

dotnet add package Exis.PdfEditor

Start Free Trial

Questions? Email support@exisone.com — you will hear from a developer, not a bot.