チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»pdfjavatext

Displaying items by tag: pdfjavatext

PDF 内のテキストや画像の座標を取得することで、要素を正確に特定でき、コンテンツの抽出が容易になります。これは特にデータ分析において重要で、複雑なレイアウトから必要な情報を引き出す際に役立ちます。また、座標を把握することで、適切な場所に注釈、マーク、スタンプを追加できるようになり、重要な箇所を強調表示したり、コメントを正確に追加したりすることで、ドキュメントのインタラクティブ性やコラボレーションを向上させることができます。

この記事では、Java で Spire.PDF for Java ライブラリを使用して、PDF ドキュメント内の特定のテキストや画像の座標を取得する方法を示します。

Spire.PDF for Java をインストールします

まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>10.11.2</version>
    </dependency>
</dependencies>

Spire.PDF における座標系

Spire.PDF for Java を使用して既存の PDF ドキュメントを操作する場合、座標系の原点はページの左上隅に位置していることに注意してください。X 軸は右方向に伸び、y 軸は下方向に伸びています。この座標系は以下の図で説明されています。

Spire.PDF における座標系

PDF 内の特定のテキストの座標を取得する

まず、PdfTextFinder.find() メソッドを使用して、ページ内の特定のテキストのすべての出現箇所を検索し、その結果を PdfTextFragment のリストとして取得します。その後、PdfTextFragment.getPositions() メソッドを使用して、指定したテキストの最初の出現箇所の座標を取得することができます。

以下は、PDF 内の特定のテキストの座標を取得する手順です:

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfDocument.getPages().get() メソッドを使用して特定のページを取得します。
  • PdfTextFinder.find() メソッドを使用して、ページ内の指定したテキストのすべての出現箇所を検索し、その結果を PdfTextFragment のリストとして取得します。
  • リスト内の特定の PdfTextFragment にアクセスし、PdfTextFragment.getPositions() メソッドを使用してそのフラグメントの座標を取得します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFindOptions;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;

import java.awt.geom.Point2D;
import java.util.EnumSet;
import java.util.List;

public class GetTextCoordinates {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成
        PdfDocument doc = new PdfDocument();

        // PDFファイルを読み込む
        doc.loadFromFile("Sample.pdf");

        // 特定のページを取得
        PdfPageBase page = doc.getPages().get(0);

        // PdfTextFinderオブジェクトを作成
        PdfTextFinder finder = new PdfTextFinder(page);

        // 検索オプションを設定
        PdfTextFindOptions options = new PdfTextFindOptions();
        options.setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
        finder.setOptions(options);

        // テキストのすべてのインスタンスを検索
        List fragments = finder.find("海洋哺乳類");

        // 特定のテキストフラグメントを取得
        PdfTextFragment fragment = fragments.getFirst();

        // テキストの位置を取得(テキストが複数行にまたがっている場合、複数の位置が返される)
        Point2D[] positions = fragment.getPositions();

        // 最初の位置を取得
        double x = positions[0].getX();
        double y = positions[0].getY();

        // 結果を表示
        System.out.printf("テキストの位置: (%f, %f).%n", x, y);
    }
}

PDF 内の特定のテキストの座標を取得する

PDF 内の特定の画像の座標を取得する

まず、PdfImageHelper.getImagesInfo() メソッドを使用して、指定したページ内のすべての画像情報を取得し、その結果を PdfImageInfo の配列として保存します。その後、PdfImageInfo.getBounds().getX() および PdfImageInfo.getBounds().getY() メソッドを使用して、特定の画像の X 座標および Y 座標を取得します。

以下は、PDF 内の特定の画像の座標を取得する手順です:

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfDocument.getPages().get() メソッドを使用して特定のページを取得します。
  • PdfImageHelper.getImagesInfo() メソッドを使用してページ内のすべての画像情報を取得し、その結果を PdfImageInfo の配列として保存します。
  • PdfImageInfo.getBounds().getX() および PdfImageInfo.getBounds().getY() メソッドを使用して、特定の画像のX座標およびY座標を取得します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.utilities.PdfImageHelper;
import com.spire.pdf.utilities.PdfImageInfo;

public class GetImageCoordinates {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成
        PdfDocument doc = new PdfDocument();

        // PDFファイルを読み込む
        doc.loadFromFile("Sample.pdf");

        // 特定のページを取得
        PdfPageBase page = doc.getPages().get(0);

        // PdfImageHelperオブジェクトを作成
        PdfImageHelper helper = new PdfImageHelper();

        // ページから画像情報を取得
        PdfImageInfo[] imageInfo = helper.getImagesInfo(page);

        // 最初の画像のX, Y座標を取得
        double x = imageInfo[0].getBounds().getX();
        double y = imageInfo[0].getBounds().getY();

        // 結果を表示
        System.out.printf("画像の位置: (%f, %f).%n", x, y);
    }
}

PDF 内の特定の画像の座標を取得する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in テキスト
Tagged under

PDF 文書内のテキストを検索して強調表示することは、多くの個人や組織にとって非常に重要な作業です。研究を行う学生であれ、契約書をレビューする専門家であれ、デジタル記録を整理するアーキビストであれ、特定の情報を素早く見つけて強調する能力は非常に貴重です。

この記事では、Spire.PDF for Java ライブラリを使用して、Java で PDF 文書内のテキストを検索して強調表示する方法を説明します。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>10.4.4</version>
    </dependency>
</dependencies>

Java で特定のページのテキストを検索して強調表示する

Spire.PDF for Java では、PdfTextFinder クラスを使用してページ内の特定のテキストを検索することができます。検索操作を実行する前に、PdfTextFinder.getOptions.setTextFindParameter() メソッドを使用して、WholeWordIgnoreCase などの検索オプションを設定できます。テキストが見つかったら、ハイライトを適用してテキストを視覚的に区別することができます。

以下は、Java を使用して PDF 内の特定のページでテキストを検索し、強調表示する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使って PDF ドキュメントを読み込みます。
  • PdfDocument.getPages().get() メソッドを使用して、ドキュメントから特定のページを取得します。
  • そのページに基づいて PdfTextFinder オブジェクトを作成します。
  • PdfTextFinder.getOptions().setTextFindParameter() メソッドを使用して検索オプションを指定します。
  • PdfTextFinder.find() メソッドを使用して、指定したテキストの出現箇所をすべて検索します。
  • 検索結果を繰り返し処理し、PdfTextFragment.highlight() メソッドを使用して各出現箇所を強調表示します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;

import java.awt.*;
import java.util.EnumSet;

public class FindAndHighlightTextInPage {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        // PDFファイルを読み込む
        doc.loadFromFile("サンプル.pdf");

        // 特定のページを取得する
        PdfPageBase page = doc.getPages().get(0);

        // ページに基づいてPdfTextFinderオブジェクトを作成する
        PdfTextFinder finder = new PdfTextFinder(page);

        // 検索オプションを指定する
        finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
        finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));

        // 指定したテキストのインスタンスを検索する
        List results  = finder.find("クラウドサーバー");

        // 検索結果を反復処理する
        for (int i = 0; i < results.size(); i++)
        {
            // Get a finding result
            PdfTextFragment fragment = (PdfTextFragment)results.get(i);
            // Highlight the text
            fragment.highLight();
        }

        // 別のPDFファイルに保存する
        doc.saveToFile("output/PDFページ内のテキストをハイライト.pdf", FileFormat.PDF);
        doc.dispose();
    }
}

Java:PDF でテキストを検索して強調表示する方法

Java で矩形領域内のテキストを検索して強調表示する

ドキュメント内の特定のセクションや情報に注目させるために、ユーザはページ内の矩形領域内で指定されたテキストを見つけて強調表示することができます。こ の矩形領域は、PdfTextFinder.getOptions().setFindArea() メソッドを用いて定義することができます。

以下は、Java を使用して PDF ページの矩形領域内のテキストを検索して強調表示する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使って PDF ドキュメントを読み込みます。
  • PdfDocument.getPages().get() メソッドを使ってドキュメントから特定のページを取得します。
  • そのページに基づいて PdfTextFinder オブジェクトを作成します。
  • PdfTextFinder.getOptions().setTextFindParameter() メソッドを使用して検索オプションを指定します。
  • PdfTextFinder.find() メソッドを使用して、矩形領域内で指定したテキストが出現する箇所をすべて検索します。
  • 検索結果を繰り返し処理し、PdfTextFragment.fighlight() メソッドを使用して各出現箇所を強調表示します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.util.EnumSet;

public class FindAndHighlightTextInRectangle {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成します
        PdfDocument doc = new PdfDocument();

        // PDFファイルをロードします
        doc.loadFromFile("サンプル.pdf");

        // 特定のページを取得します
        PdfPageBase page = doc.getPages().get(0);

        // ページに基づいてPdfTextFinderオブジェクトを作成します
        PdfTextFinder finder = new PdfTextFinder(page);

        // テキストを検索するための長方形の領域を指定します
        finder.getOptions().setFindArea(new Rectangle2D.Float(0,0,841,180));

        // その他のオプションを指定します
        finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
        finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));

        // 指定したテキストのインスタンスを長方形の領域内で検索します
        List results  = finder.find("クラウドサーバー");

        // 検索結果を反復処理します
        for (int i = 0; i < results.size(); i++) {
            // テキストのインスタンスを取得します
            PdfTextFragment fragment = (PdfTextFragment)results.get(i);
            // テキストをハイライト表示します
            fragment.highLight(Color.lightGray);
        }

        // 別のPDFファイルに保存します
        doc.saveToFile("output/矩形領域内のPDFテキストをハイライト.pdf", FileFormat.PDF);

        // リソースを解放します
        doc.dispose();
    }
}

Java:PDF でテキストを検索して強調表示する方法

Java で PDF 全体のテキストを検索して強調表示する

最初のコード例では、特定のページのテキストを強調表示する方法を示します。文書全体のテキストを強調表示するには、文書の各ページを走査して検索操作を実行し、特定されたテキストに強調表示を適用します。

Java を使って PDF 文書全体のテキストを検索し、強調表示する手順は以下のとおりです。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • ドキュメントの各ページを繰り返し処理します。
    • 指定したページに基づいて PdfTextFinder オブジェクトを作成します。
    • PdfTextFinder.getOptions().setTextFindParameter() メソッドを使用して検索オプションを指定します。
    • PdfTextFinder.find() メソッドを使用して、指定したテキストの出現箇所をすべて検索します。
    • 検索結果を反復処理し、PdfTextFragment.fighlight() メソッドを使用して各出現箇所を強調表示 し ます。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;

import java.awt.*;
import java.util.EnumSet;

public class FindAndHighlightTextInDocument {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成します
        PdfDocument doc = new PdfDocument();

        // PDFファイルをロードします
        doc.loadFromFile("サンプル.pdf");

        // PDFファイル内のページを反復処理します
        for (Object pageObj : doc.getPages()) {

            // 特定のページを取得します
            PdfPageBase page = (PdfPageBase) pageObj;

            // ページに基づいてPdfTextFinderオブジェクトを作成します
            PdfTextFinder finder = new PdfTextFinder(page);

            // 検索オプションを指定します
            finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
            finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));

            // 指定したテキストのインスタンスを検索します
            List results  = finder.find("クラウドサーバー");

            // 検索結果を反復処理します
            for (int i = 0; i < results.size(); i++) {
                // テキストのインスタンスを取得します
                PdfTextFragment fragment = (PdfTextFragment) results.get(i);
                // テキストのインスタンスを強調表示します
                fragment.highLight(Color.cyan);
            }
        }

        // 別のPDFファイルに保存します
        doc.saveToFile("output/PDF文書のテキストをハイライト.pdf", FileFormat.PDF);
        // リソースを解放します
        doc.dispose();
    }
}

Java:PDF でテキストを検索して強調表示する方法

Java で正規表現を使ってテキストを検索して強調表示する

ドキュメント内の特定のテキストを探す場合、正規表現を使用すると検索条件の柔軟性と制御性が向上します。正規表現を利用するには、TextFindParameter を Regex として設定 し 、find() メソッドへの入力として希望の正規表現パターンを与える必要があります。

以下は、Java を使用して正規表現を使って PDF 内のテキストを検索し、強調表示する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッド を使用して PDF ドキュメントを読み込みます。
  • ドキュメント内の各ページを繰り返し処理します。
  • 特定のページに基づいて PdfTextFinder オブジェクトを作成します。
  • PdfTextFinder.getOptions().setTextFindParameter() メソッドを使用して、TextFindParameter を正規表現として設定します。
  • 検索する特定のテキストにマッチする正規表現パターンを作成します。
  • PdfTextFinder.find() メソッドを使用して、検索対象のテキストが出現する箇所をすべて検索します。
  • 検索結果を反復処理し、PdfTextFragment.fighlight() メソッドを使用して各出現箇所を強調表示 し ます。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;

import java.awt.*;
import java.util.EnumSet;

public class FindAndHighlightTextUsingRegex {

    public static void main(String[] args) {

        // PdfDocumentオブジェクトを作成します
        PdfDocument doc = new PdfDocument();

        // PDFファイルをロードします
        doc.loadFromFile("サンプル.pdf");

        // PDFファイル内のページを反復処理します
        for (Object pageObj : doc.getPages()) {

            // 特定のページを取得します
            PdfPageBase page = (PdfPageBase) pageObj;

            // ページに基づいてPdfTextFinderオブジェクトを作成します
            PdfTextFinder finder = new PdfTextFinder(page);

            // 検索モデルを正規表現に指定します
            finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.Regex));

            // 連続する3つの大文字にマッチする正規表現を指定します
            String pattern = "[A-Z]{3}";

            // 正規表現に一致するテキストを検索します
            List results  = finder.find(pattern);

            // 検索結果を反復処理します
            for (int i = 0; i < results.size(); i++) {
                // テキストを取得します
                PdfTextFragment fragment = (PdfTextFragment) results.get(i);
                // テキストをハイライト表示します
                fragment.highLight(Color.PINK);
            }
        }

        // 別のPDFファイルに保存します
        doc.saveToFile("output/正規表現でPDFテキストをハイライト.pdf", FileFormat.PDF);

        // リソースを解放します
        doc.dispose();
    }
}

Java:PDF でテキストを検索して強調表示する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in テキスト
Tagged under

PDF にテキストを描画する際、ページをより鮮やかにするために、色彩豊かなブラシやペンを定義することが必要な場合があります。この記事では、Spire.PDF for Java を使用して、PDF ドキュメント内の文字列の色スペースを設定する方法について説明します。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>8.8.3</version>
    </dependency>
</dependencies>

PDF 上の文字列のフォント色を設定する

Spire.PDF for Java は、テキストのブラシ色を設定するために PdfSolidBrush クラスを提供します。それは、特定の RGB の色スペースまたは HTML の色コードに基づいてブラシの色を定義する機能を備えています。

以下は、PDF ドキュメントに文字色を設定する詳細な手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.getPages().add() メソッドを使用して PDF 内に新しいページを追加します。
  • 特定の RGB の色スペースまたは HTML の色コードに基づいて PdfSolidBrush クラスのオブジェクトを作成します。
  • フォントの名前、サイズ、およびスタイルを設定するために PdfTrueTypeFont クラスのオブジェクトを作成します。
  • PdfPageBase.getCanvas().drawString() メソッドを使用して、ページ上の指定された位置にテキストを描画します。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfSolidBrush;
import com.spire.pdf.graphics.PdfTrueTypeFont;

import java.awt.*;

public class setPDFFontColor {
    public static void main(String[] args) throws Exception {

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //ページを追加する
        PdfPageBase page = doc.getPages().add();

        //位置を設定する
        float y = 30;

        //ソリッドブラシのオブジェクトを作成し、色を定義する
        PdfRGBColor rgb1 = new PdfRGBColor(Color.green);
        PdfSolidBrush brush1 = new PdfSolidBrush(rgb1);

        //RGB色
        PdfRGBColor rgb2 = new PdfRGBColor(0,197,205);
        PdfSolidBrush brush2 = new PdfSolidBrush(rgb2);

        //HTMLコード色
        Color color = Color.decode("#A52A2A");
        PdfSolidBrush brush3 = new PdfSolidBrush(new PdfRGBColor(color));

        //トゥルータイプのフォントのオブジェクトを作成する
        Font font = new Font("Yu Mincho", java.awt.Font.BOLD, 14);
        PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font);

        //テキストを描画する
        page.getCanvas().drawString("ブラシで文字色を設定します。", trueTypeFont, brush1, 0, (y = y + 30f));
        page.getCanvas().drawString("RGBで文字色を設定します。", trueTypeFont, brush2, 0, (y = y + 50f));
        page.getCanvas().drawString("HTMLコード色で文字色を設定します。", trueTypeFont, brush3, 0, (y = y + 60f));

        //ドキュメントを保存する
        doc.saveToFile("文字色の設定.pdf");
    }
}

Java:PDF に文字色を設定する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in テキスト
Tagged under

MS Word とは異なり、PDF は自動的にページの内容を再配置しないので、PDF ドキュメント内のテキストはほとんど変更することはできません。Spire.PDF for Java が提供するこの方法は、既存のドキュメント内のテキストを置き換えるのではなく、古いテキストを白い矩形で覆い、その上に新しいテキストを描画します。置き換え後の空白や重なりの問題を回避するために、置き換えに使用するテキストの長さが、置き換えられるテキストの長さと同じであることを確認してください。この記事では、PDF ドキュメント内のテキストを検索して置換する方法を紹介します。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>8.8.3</version>
    </dependency>
</dependencies>

PDF ドキュメント内のテキストを検索して置換する

以下は、特定の PDF ページで選択されたテキストを検索し、新しいテキストでそれらを覆うための手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.getPages().get() メソッドを使用して最初のページを取得し、PdfPageBase.findText() メソッドを使用してそのページから選択テキストを検索します。
  • 検索されたテキストの境界を取得し、PdfPageBase.getCanvas().drawRectangle() メソッドを使用して境界の領域を覆うように白い長方形を描画します。
  • PdfPageBase.getCanvas().drawString() メソッドを用いて、その領域に新しいテキストを描画します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.*;
import com.spire.pdf.general.find.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;

public class replaceText {
    public static void main(String[] args) throws Exception {

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFドキュメントを読み込む
        doc.loadFromFile("C:/例.pdf");

        //ドキュメントの最初のページを取得する
        PdfPageBase page = doc.getPages().get(0);

        //検索テキスト「精神医学者」
        PdfTextFindCollection collection = page.findText("精神医学者",false);

        //置換テキスト「心理療法士」を指定する
        String newText = "心理療法士";

        PdfBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.blue));

        //PdfTrueTypeFontクラスのオブジェクトを作成し、フォントを設定する
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho",  Font.BOLD, 12));

        for (Object findObj : collection.getFinds()) {
            PdfTextFind find=(PdfTextFind)findObj;

            //ページ上のテキストの境界を取得する
            Rectangle2D.Float rec = (Rectangle2D.Float)find.getBounds();
            page.getCanvas().drawRectangle(PdfBrushes.getWhite(), rec);

            //テキストを描画する
            page.getCanvas().drawString(newText, font, brush, rec.getX(), rec.getY()-7);
        }

        String result = "テキストの置換.pdf";

        //ドキュメントを保存する
        doc.saveToFile(result, FileFormat.PDF);
    }
}

Java:PDF ドキュメント内のテキストを検索して置換する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in テキスト
Tagged under