テンプレートは、カスタマイズされたドキュメントを生成するために広く使用されています。この記事では、C#を使用してPDFドキュメント内のテキストと単語を検索して置換する方法について説明します。プログラムで単語やフレーズを置き換える方法、単語を大文字と小文字を区別する検索に置き換える方法、正規表現を使用して置き換える方法については、個別に説明します。最後に、C#を使用して検索された文字列を非表示にする方法も学習します。

以下のトピックについて以下で説明します。

テキストを置き換えるための.NETRedactionAPI

GroupDocsは、GroupDocs.Redaction for .NETを紹介します。これは、.NETアプリケーション内のドキュメント、プレゼンテーション、スプレッドシート、PDFファイル、画像のコンテンツやメタデータを編集、非表示、または削除するためのAPIです。 APIの詳細については、そのドキュメントをご覧ください。

ダウンロードセクション からDLLまたはMSIインストーラーをダウンロードするか、NuGet

PM> Install-Package GroupDocs.Redaction

墨消しのためにPDFエディタやその他のサードパーティソフトウェアをインストールする必要はありません。以下は、以下の例で使用されているPDFドキュメントのスクリーンショットです。同じアプローチは、コードをほとんどまたはまったく変更せずに、他のドキュメント形式でも機能します。

C#を使用してPDF内の単語またはフレーズを検索して置換

この機能を使用して、機密データを非表示にしたり、テンプレートから新しいカスタマイズされたドキュメントを作成したりできます。次の手順では、C#アプリケーション内で他のテキストを含むPDFドキュメント内の単語/フレーズを検索する方法について説明します。

  • ** Redactor クラスを使用してPDFファイルをロード**します。
  • ** ExactPhraseRedactionReplacementOptions) を使用して、正確なフレーズまたは単語を検索します** 。
  • ** Apply() メソッドを使用して編集**を適用します。
  • ** Save() メソッドを使用して、変更を加えた新しいドキュメントを保存します。

次のコードは、C#の単語を検索して置き換えます。より正確には、「JohnDoe」の出現をすべて「[censored]」という単語に置き換えることで非表示にします。

// 正確なフレーズを見つけて、C#を使用して他のテキストに置き換えます
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

コードの出力は次のとおりです。

C#を使用してPDFで大文字と小文字を区別するテキストまたはフレーズを検索して置換する

大文字と小文字を区別する検索と編集を実行できます。次のコードは、C#の「johndoe」ではなく「JohnDoe」という単語の大文字と小文字を区別する存在を置き換えます。

// 正確なフレーズ(大文字と小文字を区別) を検索し、C#を使用して他のテキストに置き換えます
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

コードの出力は次のとおりです。

C#を使用してPDFのテキストを正規表現(RegEx) に置き換える

正規表現を使用して、特定のテキストパターンを置き換えることもできます。次の手順では、.NETアプリケーション内で正規表現(RegEx) を使用して検索した後、PDFを編集できます。

  • Redactorクラスを使用してPDFドキュメントをロードします。
  • ReplacementOptionsRegexRedactionクラスを使用して、正規表現の一致を見つけます。
  • Apply()メソッドを使用してドキュメントに変更を加えます。
  • 適切なSave()メソッドを使用して、編集されたドキュメントを保存します。

次のコードは、RegExを使用してPDFドキュメント内の特定のテキストパターンを検索し、後でC#を使用して他のテキストに置き換え/非表示にする方法を示しています。

// 正規表現を使用してテキストを検索し、C#を使用して他のテキストに置き換えます
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

上記のコードの出力は次のとおりです。

C#でテキストを色付きのボックスに置き換える

PDFファイルの検索されたコンテンツ(個人情報) を非表示にしたい場合は、単にカバーを付けることができます。 APIを使用すると、検索されたテキストを非表示にできます。次のC#コードは、言及されたプライベートテキストの上に黒い長方形を配置します。

// PDFでテキストを検索し、C#を使用してその上に長方形を描画して非表示にします
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

上記のコードの出力は次のとおりです。

無料のAPIライセンスを取得する

評価の制限なしでAPIを使用するために、無料の一時ライセンスを取得 することができます。

結論

結論として、さまざまな検索手法を使用してPDFファイル内の特定のテキストを検索する方法を学びました。後で、C#を使用して.NETアプリケーション内のテキストを置き換えるか非表示にすることによってPDFファイルを編集する方法について説明しました。より正確には、単語やフレーズを検索し、大文字と小文字を区別して検索し、C#で正規表現を使用するだけです。最後に、検索結果を他のテキストに置き換えるか、長方形のボックスで非表示にしました。

APIの詳細については、ドキュメント にアクセスしてください。質問については、フォーラム からお問い合わせください。

関連項目