##Javaを使用してPDF内の指定されたテキストを検索して置換する方法
##背景
PDFファイルの内容は簡単に変更されない、エクスポートしやすい、互換性の問題も存在していませんので、データの保存などにふさわしいです。でもPDFドキュメント内の特定のテキストを置き換えたい場合もよくあります。この記事では、Javaプログラムを介したPDF内の指定されたテキストコンテンツのバッチ置換を紹介します。
##プログラム環境の下準備。
コードコンパイルツール:IntelliJ IDEA
Jdkバージョン:1.8.0
Jarパッケージ:free Spire.Pdf.jar 3.9.0
本記事では無料版のPDF Jarを使用しました、また、JDKバージョンの上位バージョンを使用することをお勧めします。
jarファイルがインポートされた後、Spire.PDFによって提供されるインターフェースとメソッドを呼び出してPDFを操作できます。次のインポート結果を参照してください。
注:jarパッケージは手動でダウンロードできます。ダウンロード後、ファイルを解凍し、libフォルダー内のSpire.Pdf.jarファイルをJavaプログラムにインポートします。
##Javaコード
import com.spire.pdf.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.general.find.PdfTextFindCollection;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfSolidBrush;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class FindAndReplaceText {
public static void main(String[] args) {
//PDFドキュメントをロードする
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\Java.pdf");
//ドキュメントの各ページをトラバースする
for (int i = 0; i < pdf.getPages().getCount(); i++)
{
//すべてのページを取得する
PdfPageBase page = pdf.getPages().get(i);
//指定されたテキストを検索する
PdfTextFindCollection textFindCollection;
textFindCollection = page.findText("Java",false);
//ブラシ、フォントを作成する
PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.red));
PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("Yu Mincho",Font.PLAIN,9),true);
//元のテキストを新しいテキスト文字に置き換える
Rectangle2D rec;
for(PdfTextFind find: textFindCollection.getFinds())
{
rec = find.getBounds();
page.getCanvas().drawRectangle(PdfBrushes.getWhite(), rec);
page.getCanvas().drawString("C#", font1, brush1, rec);
}
}
//ドキュメントを保存する
pdf.saveToFile("FindAndReplaceText.pdf");
pdf.close();
}
}