テンプレートは、テンプレートキーをそれぞれの値に置き換えることにより、パーソナライズされたドキュメントを生成するために広く使用されています。この記事では、JavaでPDFドキュメント内のテキストと単語を検索して置換する方法について説明します。単語やフレーズの検索、大文字と小文字を区別する単語の検索、正規表現を使用して見つかったテキストを置き換える方法について、個別に説明します。最後に、Javaを使用してテキストの検索部分を非表示にする方法を学習します。
以下のトピックについて以下で説明します。
テキストを置き換えるためのJavaRedactionAPI
GroupDocsは、さまざまなタイプの編集を適用するためのJavaAPIを提供します。アプリケーション内のドキュメント、プレゼンテーション、スプレッドシート、PDFファイル、画像のコンテンツやメタデータを編集、非表示、または削除することができます。 APIの詳細については、そのドキュメント にアクセスしてください。
ダウンロードまたは構成
** JAR **ファイルはダウンロードセクション からダウンロードするか、maven-のpom.xmlの最新のリポジトリと依存関係の構成を取得することができます。ベースのJavaアプリケーション。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-redaction</artifactId>
<version>21.12</version>
</dependency>
良い点の1つは、PDFエディターやPDF編集用の他のサードパーティソフトウェアをインストールする必要がないことです。以下は、以下の編集例で使用されているPDFドキュメントの内容です。同じアプローチは、ソースコードにほとんど違いがない他のドキュメント形式でも機能します。

JavaでPDFの単語またはフレーズを検索して置換
この機能を使用して、プライベートデータを非表示にしたり、テンプレートから新しいカスタマイズされたドキュメントを作成したりできます。次の手順では、PDFドキュメント内の単語/フレーズを検索し、Javaアプリケーション内で他のテキストに置き換える方法について説明します。
- Redactor クラスを使用してPDFファイルをロードします。
- **ExactPhraseRedaction とReplacementOptions 。
- apply() メソッドを使用して編集を適用します。
- **save() メソッドを使用して、変更を加えた新しいドキュメントを 保存 します。
次のコードは、Javaを使用してPDFファイル内の単語を検索して置き換えます。より正確には、「JohnDoe」の出現をすべて「[censored]」という単語に置き換えることで非表示にします。
// PDFで正確なフレーズを検索し、Javaを使用して他のテキストに置き換えます
final Redactor redactor = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// 編集したファイルを別の場所に別の名前で保存します。
FileOutputStream stream = new FileOutputStream("path/exactPhrase.pdf");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);
上記のコードの出力は次のとおりです。

Javaを使用してPDFで大文字と小文字を区別するテキストまたはフレーズを検索して置換
大文字と小文字を区別する検索と編集を実行できます。次のコードは、Javaを使用するPDFドキュメント内の「JohnDoe」という単語の大文字と小文字を区別する出現を置き換えますが、「johndoe」は置き換えません。
// PDF(大文字と小文字を区別) で正確なフレーズを検索し、Javaを使用して他のテキストに置き換えます
final Redactor redactor = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();
コードの出力は次のとおりです。

PDFのテキストをJavaの正規表現(RegEx) に置き換える
同様に、正規表現を使用して特定のテキストパターンを置き換えることができます。次の手順では、Javaアプリケーション内で正規表現(RegEx) を使用して検索した後、PDFを編集できます。
- Redactor クラスを使用してPDFドキュメントをロードします。
- RegexRedaction クラスとReplacementOptions) を使用して、正規表現の一致を検索します 。
- apply() メソッドを使用してドキュメントへの変更を適用します。
- 適切なsave() メソッドを使用して編集済みドキュメントを保存します。
次のJavaコードは、RegExを使用してPDFドキュメント内の特定のテキストパターンを検索し、後でそれを他のテキストに置き換えたり非表示にしたりする方法を示しています。
// 正規表現を使用してPDF内のテキストを検索し、Javaを使用して他のテキストに置き換えます
final Redactor redactor = new Redactor("path/document.pdf");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();
上記のコードの出力は次のとおりです。

Javaでテキストを色付きのボックスに置き換える
検索した機密情報をPDFファイル内に隠したいだけの場合は、カバーを付けるだけです。 APIを使用すると、検索されたテキストを非表示にできます。次のコードは、Javaで言及されたプライベートテキストの上に黒い長方形を配置します。
// PDFでテキストを検索し、Javaを使用してその上に長方形を描画して非表示にします
final Redactor redactor = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();
上記のコードの出力は次のとおりです。

無料のAPIライセンスを取得する
評価の制限なしでAPIを使用するために、無料の一時ライセンスを取得 することができます。
結論
要約すると、さまざまな検索手法を使用してPDFファイル内の特定のテキストを検索する方法を学びました。その後、Javaのアプリケーション内のテキストを置き換えたり非表示にしたりして、PDFファイルを編集しました。より正確には、単語やフレーズの簡単な検索を実行し、大文字と小文字を区別して検索し、JavaでRegExを使用しました。最後に、検索結果を他のテキストで変更するか、単に色で非表示にしました。
APIの詳細については、ドキュメント にアクセスしてください。質問については、フォーラム からお問い合わせください。