C# で PDF ファイル内のテキストをプログラムで検索・置換。コンテンツストリームの直接編集 — DOCXへの変換不要、外部依存なし、データ損失なし。
dotnet add package Exis.PdfEditor
ほとんどの.NET PDFライブラリ — IronPDF、Spire.PDF、Aspose、Syncfusion — はPDFを中間形式に変換、テキストを墨消して新しいテキストを上に描画、またはページをゼロから再構築してテキストを置換します。
このアプローチは以下を破壊します:
Exis.PdfEditorはPDFコンテンツストリームをバイトレベルで直接解析します。実際のPDFオペレータ内のテキストを特定し、対象の文字列オペランドのみを変更し、PDFインクリメンタル更新で書き戻します。
変更されない部分はバイト単位で同一のままです:
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.");
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);
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);
// 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");
| 機能 | Exis.PdfEditor | IronPDF | Spire.PDF | Aspose.PDF | Syncfusion |
|---|---|---|---|---|---|
| コンテンツストリームの直接編集 | ✓ | ✗ HTMLレンダリング | ✗ 墨消しオーバーレイ | ✗ フラグメント置換 | ✗ 墨消しオーバーレイ |
| フォームフィールドを保持 | ✓ | ✗ | 部分的 | 部分的 | ✗ |
| デジタル署名を保持 | ✓ 未変更ページ | ✗ | ✗ | ✗ | ✗ |
| テキスト間隔/カーニングを保持 | ✓ | ✗ | ✗ | 部分的 | ✗ |
| ネイティブ依存なし | ✓ 純粋な.NET | ✗ Chromiumエンジン | ✓ | ✓ | ✓ |
| DLLサイズ | < 500 KB | ~250 MB | ~20 MB | ~40 MB | ~15 MB |
| バッチマルチペア置換 | ✓ シングルパス | 手動ループ | 手動ループ | 手動ループ | 手動ループ |
| .NET Framework 4.8 | ✓ | ✓ | ✓ | ✓ | ✗ .NET 6+のみ |
| クロスプラットフォーム | ✓ | ✓ | ✓ | ✓ | ✓ |
| 正規表現サポート | ✓ | ✓ | ✓ | ✓ | ✓ |
| 価格(開発者/年) | $499 | $749 | $999 | $1,175 | $995* |
| 本社 | 🇺🇸 USA | 🇺🇸 USA | 🇨🇳 China | 🇦🇺 Australia | 🇺🇸 USA |
2026年2月時点の公開ドキュメントに基づく比較。機能サポートはバージョンにより異なる場合があります。
「コンテンツストリームの直接編集」とは、ライブラリがPDFテキストオペレータを変換、再レンダリング、オーバーレイなしにその場で変更することを意味します。
コンテンツストリームオペレータを変更。中間変換なし。
Ghostscript不要、LibreOffice不要、Chromium不要。純粋なマネージド.NET。
フォーム、署名、注釈、ブックマーク — すべて保持。
.NET 8+、.NET Framework 4.8、.NET Standard 2.0。
複数の検索/置換ペアを1回のパスで実行。
パターンベースの置換に完全な.NET regexサポート。
Windows、Linux、macOS。.NETが動くすべての場所で。
単一DLL、500 KB未満。デプロイするネイティブバイナリなし。
NuGetパッケージをインストールしてExisLicense.Initialize()を呼び出す — 14日間フル機能。トライアル後、評価モードはドキュメントあたり最大3ページを処理。透かしなし。準備ができたらofficefindreplace.com/Home/pdf-find-replace-csharpでライセンスキーを購入。
価格は米ドル。開発者あたり1キー。開発機、ビルドサーバー、本番環境で動作 — マシン単位やデプロイ単位の制限なし。
トライアルモードとライセンスモードでコードは変わりません。準備ができたらキーを追加するだけです。
dotnet add package Exis.PdfEditor
ご質問は?support@exisone.comにメール — ボットではなく開発者がお答えします。