PDFJavaでテキストを検索して置換

さまざまなケースで、PDFドキュメント内の特定のテキストを見つけて置き換える必要がある場合があります。ただし、各オカレンスを手動で検索および更新すると、余分な時間と労力がかかる場合があります。このような場合、検索と置換のオプションを使用すると、作業が楽になります。この記事では、Javaを使用してPDFドキュメント内のテキストを検索および置換する方法を学習します。

PDF内のテキストを検索して置換するJavaAPI-無料ダウンロード

Aspose.PDF for Javaは、Javaアプリケーション内からPDFファイルを生成および操作するために設計されています。 APIは、テキストの検索や置換など、基本的なPDF操作機能と高度なPDF操作機能を幅広く提供します。 APIをダウンロードするか、次のMaven構成を使用してインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.1</version>    
</dependency>

Javaを使用してPDF内のテキストを検索および置換

PDF内の特定のテキストを置き換えるには、最初に検索文字列に一致するすべてのテキストフラグメントを取得します。それらを入手したら、各フラグメントを更新されたテキストで1つずつ置き換えるだけです。

以下は、Javaを使用してPDFファイル内のテキストを検索して置換する手順です。

次のコードサンプルは、PDF内のテキストを検索して置換する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("source.pdf");

// TextAbsorberオブジェクトを作成して、入力検索フレーズのすべてのインスタンスを検索します
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// ドキュメントのすべてのページのアブソーバーを受け入れます
pdfDocument.getPages().accept(textFragmentAbsorber);

// 抽出されたテキストフラグメントをコレクションに入れます
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// フラグメントをループします
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// テキストやその他のプロパティを更新する
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 更新されたPDFファイルを保存します
pdfDocument.save("Updated_Text.pdf");

PDFの特定のページのテキストを検索して置換する

PDF全体でテキストを検索して置換する代わりに、出現するテキストを置換する単一のページを指定できます。この場合、ページインデックスを指定するだけで、特定のページのTextFragmentAbsorberを受け入れることになります。

以下は、JavaでPDFの特定のページのテキストを検索して置換する手順です。

次のコードサンプルは、Javaを使用してPDFの特定のページのテキストを検索して置換する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("source.pdf");

// TextAbsorberオブジェクトを作成して、入力検索フレーズのすべてのインスタンスを検索します
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// ドキュメントの最初のページのアブソーバーを受け入れます
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// 抽出されたテキストフラグメントをコレクションに入れます
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// フラグメントをループします
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// テキストやその他のプロパティを更新する
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 更新されたPDFファイルを保存します
pdfDocument.save("Updated_Text.pdf");

PDFの正規表現を使用してテキストを検索および置換

電子メール、SSNなどの特定のパターンに一致するテキストを検索するための正規表現を指定することもできます。以下は、Javaを使用してPDFのテキストを検索および置換するための正規表現を定義および使用する手順です。

次のコードサンプルは、正規表現を使用してPDF内のテキストを検索および置換する方法を示しています。

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.Pdf-for-Javaにアクセスしてください。
// ドキュメントを開く
Document pdfDocument = new Document("input.pdf");

// TextAbsorberオブジェクトを作成して、入力検索フレーズのすべてのインスタンスを検索します
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// 正規表現の使用を有効にするためのテキスト検索オプションを設定します
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// ドキュメントのすべてのページのアブソーバーを受け入れます
pdfDocument.getPages().accept(textFragmentAbsorber);

// 抽出されたテキストフラグメントをコレクションに入れます
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// フラグメントをループします
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// テキストやその他のプロパティを更新する
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// 更新されたPDFファイルを保存します
pdfDocument.save("Updated_Text.pdf");

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

評価制限なしで無料でAPIを試すことができます。 無料の一時ライセンスを取得今すぐ。

結論

この記事では、Javaを使用してPDF内のテキストを検索および置換する方法を学習しました。さらに、正規表現を使用して、特定のパターンに従ってテキストを検索および置換する方法を見てきました。 ドキュメントを使用して、JavaPDFAPIの詳細を調べることができます。

関連項目