0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Javaを使用してPDF内の指定されたテキストを検索して置換する方法

Last updated at Posted at 2021-12-10

##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を操作できます。次のインポート結果を参照してください。
01.png
注: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();
    }
}

テキスト置換前後の結果の比較
04.png
今回の記事はここまでです、最後まで読んでいただきありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?