PDF内のテキストを置換する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Javaは、replaceTextメソッドを通じて既存のPDFコンテンツを直接制御することを開発者に提供します。 生成されたレポートのバッチ内の誤字を修正する、テンプレート文書のバージョン番号を交換する、または顧客固有のデータで契約をパーソナライズする必要がある場合、このメソッドはページ選択、検索文字列、および置換文字列を受け入れ、残りを処理します。このガイドは、単一ページ置換、複数ページターゲティング、利用可能なすべてのPageSelectionオプション、およびテンプレート駆動ワークフローのための実用的なパターンをカバーしています。

クイックスタート:PDF内のテキストを置換

IronPDF依存関係を追加し、PDFを読み込みまたはレンダリングし、replaceTextを呼び出し、結果を保存します:

 :title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
        pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
        pdf.saveAs("replaceText.pdf");
    }
}
 :title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
        pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
        pdf.saveAs("replaceText.pdf");
    }
}
JAVA

単一ページのテキストを置き換えるにはどうすればよいですか?

replaceTextメソッドは3つの引数を受け取ります: 1つ以上のページをターゲットとするPageSelection、探す正確なテキスト、および置換文字列。 PageSelection.firstPage()を渡して最初のページをターゲットにします。 そのページ上の検索文字列のすべてのインスタンスが単一の呼び出しで置き換えられます。 対象ページでテキストが見つからない場合、メソッドはランタイム例外をスローします。 以下のスクリーンショットは、その例外がコンソールでどのように見えるかを示しています。

ターゲットテキスト'.NET7'がreplaceText中に見つからない場合の例外_RemoteExceptionを示すIronPDFコンソール出力

replaceTextが受け取るパラメータは何ですか?

メソッド署名はreplaceText(PageSelection pageSelection, String oldText, String newText)です。 一致はデフォルトで大文字小文字を区別します: "NET6"は異なる文字列として扱われます。 メソッドを呼び出す前に、レンダリングされたPDFの正確なケーシングを確認してください。 まずPDFのテキストコンテンツを抽出することで、正確なテキストを確認できます。IronPDF Java依存関係はMaven Centralに公開されており、Java 8以上が必要です。

 :title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;

public class App {

    public static void main(String[] args) throws IOException {

        // Set the IronPDF license key (required for production use)
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Render HTML content into a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");

        // Define the search and replacement strings
        String oldText = ".NET6";
        String newText = ".NET7";

        // Replace all instances of oldText on the first page only
        // PageSelection.firstPage() targets page index 0
        pdf.replaceText(PageSelection.firstPage(), oldText, newText);

        // Save the modified PDF
        pdf.saveAs("replaceText.pdf");
    }
}
 :title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;

public class App {

    public static void main(String[] args) throws IOException {

        // Set the IronPDF license key (required for production use)
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Render HTML content into a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");

        // Define the search and replacement strings
        String oldText = ".NET6";
        String newText = ".NET7";

        // Replace all instances of oldText on the first page only
        // PageSelection.firstPage() targets page index 0
        pdf.replaceText(PageSelection.firstPage(), oldText, newText);

        // Save the modified PDF
        pdf.saveAs("replaceText.pdf");
    }
}
JAVA

ヒントライセンスキーをアプリケーション起動時に一度だけロードし、各操作ごとに行うのではなく、繰り返しの初期化オーバーヘッドを避けます。 同じJVMセッション内で複数のドキュメントを処理するときに効果的です。)]}

replaceTextメソッドは、IronPDFのHTMLからPDFへの変換ワークフローと自然に統合されます。 まずHTMLテンプレートをレンダリングし、次に動的な値を注入するためにテキスト置換を適用します。 これにより、HTMLをクリーンに保ちながら、個別化された出力が生成されます。 ディスクからロードされた文書については、PdfDocument.fromFileに渡します。

出力はどのように見えますか?


複数ページにわたってテキストを置換するにはどうすればよいですか?

最初だけでなく特定のページをターゲットにするには、ページ番号のゼロインデックスリストをPageSelection.pageRange(List<Integer>)に渡します。 メソッドは指定されたリスト内の各ページ上で検索テキストを置換し、他のすべてのページは手つかずのままにします。 このパターンは、既知のページ上に一貫したヘッダーまたはフッターを持つドキュメントや、特定のページのみに現れるバージョン文字列があるバッチ生成されたレポートに適しています。

ページリストを使用したときに変更されるのはどのページですか?

以下の例では、HTMLから3ページのPDFが作成されます。 置換はページ2(最初のページと3ページ目)で実行されます。 ページ1(2ページ目)は元のテキストを変更せずに保持します。 ページインデックスは常に0から始まり、Javaのゼロベースの配列規約と一致しています。

 :title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

public class App {

    public static void main(String[] args) throws IOException {

        // Set the IronPDF license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Build a 3-page PDF from HTML using CSS page breaks
        String html = "<p> .NET6 </p>" +
                      "<p> This is 1st Page </p>" +
                      "<div style='page-break-after: always;'></div>" +
                      "<p> This is 2nd Page</p>" +
                      "<div style='page-break-after: always;'></div>" +
                      "<p> .NET6 </p>" +
                      "<p> This is 3rd Page</p>";

        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

        String oldText = ".NET6";
        String newText = ".NET7";

        // Pages are zero-indexed: 0 = first page, 2 = third page
        // Page index 1 (second page) is intentionally excluded
        List<Integer> pages = Arrays.asList(0, 2);

        pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);

        pdf.saveAs("replaceTextOnMultiplePages.pdf");
    }
}
 :title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

public class App {

    public static void main(String[] args) throws IOException {

        // Set the IronPDF license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Build a 3-page PDF from HTML using CSS page breaks
        String html = "<p> .NET6 </p>" +
                      "<p> This is 1st Page </p>" +
                      "<div style='page-break-after: always;'></div>" +
                      "<p> This is 2nd Page</p>" +
                      "<div style='page-break-after: always;'></div>" +
                      "<p> .NET6 </p>" +
                      "<p> This is 3rd Page</p>";

        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

        String oldText = ".NET6";
        String newText = ".NET7";

        // Pages are zero-indexed: 0 = first page, 2 = third page
        // Page index 1 (second page) is intentionally excluded
        List<Integer> pages = Arrays.asList(0, 2);

        pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);

        pdf.saveAs("replaceTextOnMultiplePages.pdf");
    }
}
JAVA

ご注意IronPDF内のすべてのページインデックスは0基準のインデックスを使用します。 ページ1は2ページ目などです。)]

HTMLからのマルチページPDFを作成するときは、ページの境界がどこにあるかを制御するために、CSS page-break-afterプロパティを使用してください。 カスタム用紙サイズページ方向をレンダリングの前に設定することで、コンテンツ位置がテキスト置換の際に期待通りになります。 保存後、PDFを開いてターゲットとしたページのみが変更されたことを確認します。

出力はどのように見えますか?


Icon Quote related to 出力はどのように見えますか?

私のお気に入りのこの種のライブラリはIronPDFです。PDFファイルの迅速で効率的な操作が可能です。また、PDF/A形式へのエクスポートやPDF文書へのデジタル署名といった多くの貴重な機能も備えています。

Milan Jovanovic related to 出力はどのように見えますか?

Milan Jovanovic

Microsoft MVP

ケーススタディを見る
Icon Quote related to 出力はどのように見えますか?

IronOCRのおかげで私たちは年間$40,000を手作業の処理から節約し、生産性を向上させ、高影響のタスクにリソースを充てることができます。非常にお勧めします。

Brent Matzelle related to 出力はどのように見えますか?

Brent Matzelle

最高技術責任者, OPYN

ケーススタディを見る
Icon Quote related to 出力はどのように見えますか?

IronSuiteは私たちの業務において重要な役割を果たしています。これらは、フロアプランの作成や在庫管理の改善を含め、ビジネス全体の効率を向上させるツールです。

David Jones related to 出力はどのように見えますか?

David Jones

リードソフトウェアエンジニア、Agorus Build

ケーススタディを見る

どのようなページ選択オプションがありますか?

PageSelectionクラスは、すべての一般的なターゲティングパターンをカバーする静的ファクトリメソッドを提供します。 インスタンス作成は必要ありません; クラスに直接メソッドを呼び出します。 すべてのインデックスは0基準です。

単一ページと複数ページをターゲットにするメソッドはどれですか?

| 方法 |翻訳内容| |---|---| | `PageSelection.allPages()` |ドキュメント内のすべてのページを選択します| | `PageSelection.firstPage()` |インデックス`0`のページを選択します。| | `PageSelection.lastPage()` |ドキュメントの長さに関係なく最終ページを選択します| | `PageSelection.singlePage(int pageIndex)` |0基準のインデックスで特定の1ページを選択します| | `PageSelection.pageRange(int startIndex, int endIndex)` |インデックス`endIndex`までの連続した範囲を選択します| | `PageSelection.pageRange(List pageList)` |任意のインデックスセットでページを選択します(例: `[0, 2]`がページ1と3を選択します)。|
replaceText APIのためのPageSelectionファクトリメソッド

それぞれの PageSelection メソッドはいつ使うべきですか?

allPages()は、グローバルな検索と置換に最も簡単な選択です: 文書全体のターゲットテキストのすべてのインスタンスが1回の呼び出しで置換されます。 firstPage() または lastPage() を使用して、ページをカバーするクイック編集や最後のページのフッターを本文に触れずに行います。 章やセクションなど、連続したページにテキストが表示される場合、pageRange(int, int) を選択します。 ページが連続していない場合は pageRange(List<Integer>) を使用します; たとえば、バージョン文字列が1、3、7ページのみに表示される場合です。

結合されたPDF、またはブックマークとアウトラインを含むドキュメントを扱う際には、まず各論理セクションのページ範囲を特定し、それから共有ヘッダーやフッターを誤って変更しないようにターゲットの置換を適用します。 IronPDF for Java API リファレンス には、完全なパラメータドキュメントを備えたすべての PageSelection オーバーロードがリストされています。

重要replaceText 呼び出しを try-catch ブロックでラップします。 指定した検索テキストがターゲットのページで見つからなかった場合、メソッドはランタイム例外をスローします。 検証ステップ(テキストの抽出と文字列が存在することの確認)は、本番環境での予期しない失敗を防ぎます。)]}

すべてのページのテキストを一度に置き換えるにはどうすればよいですか?

ドキュメント全体の置換を一度の呼び出しで行う PageSelection.allPages() は、グローバルトークン置換の最も効率的なアプローチです。 以下の例は、ディスクからPDFを読み込み、ドキュメント全体のすべてのプレースホルダートークンを置き換えます。

 :title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;

public class App {

    public static void main(String[] args) throws IOException {

        // Set the IronPDF license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF from disk
        PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));

        // Replace the placeholder token on every page simultaneously
        // This is equivalent to calling replaceText for each page individually
        pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");

        // Save the updated document
        pdf.saveAs("contract-v2.pdf");
    }
}
 :title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;

public class App {

    public static void main(String[] args) throws IOException {

        // Set the IronPDF license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF from disk
        PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));

        // Replace the placeholder token on every page simultaneously
        // This is equivalent to calling replaceText for each page individually
        pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");

        // Save the updated document
        pdf.saveAs("contract-v2.pdf");
    }
}
JAVA

このパターンは、テンプレート駆動のワークフローと自然に組み合わさり、多くのページにわたってヘッダー、フッター、または本文テキストに同じプレースホルダーが現れる場合に適しています。 単ページのドキュメントの場合、allPages()firstPage() は同一の結果を生成します。 ページ数が実行時に変動する可能性がある場合は、allPages() を優先します。


一般的なテキスト置換シナリオをどのように処理すればよいですか?

Javaアプリケーションにおけるテキスト置換は、単純な検索と置換を超えるいくつかのパターンを含みます。 各ケースでメソッドがどのように動作するかを理解することで、本番環境でバグが発生する前に防ぐことができます。

大文字小文字を区別するマッチングが結果にどのように影響しますか?

replaceText は、厳密で大文字小文字を区別する一致を行います。 文字列 "version 1.0"、および "VERSION 1.0" は、3つの異なる値として扱われます。 ディスクから読み込んだドキュメントに置換を実行する前に、元のソースを確認するか、またはPDFからテキストを抽出することによって正確な大文字小文字を確認してください。

PDFフォームのテキストをどのように置換するか?

インタラクティブなフォームフィールドを含むPDFは、そのテキスト値をPDF仕様で定義されているように、ドキュメントのコンテンツストリームから分離して保存します。 内容ストリームで動作する replaceText メソッドは、フォームフィールドの値を変更しません。 フォームフィールド内のテキストを更新するためには、代わりにIronPDFのフォーム作成と編集APIを使用してください。 同じドキュメントで両方のアプローチを混合することは安全です:フォームフィールドの更新とコンテンツストリームの置換は互いに干渉しません。

テンプレートベースのワークフローでテキストをどのように更新するか?

一般的なパターンとして、プレースホルダートークン (例 {{CUSTOMER_NAME}} または [INVOICE_DATE]) を持つ PDF テンプレートを維持し、実行時に実際の値で置き換えます。 プレースホルダーごとに一度 replaceText を呼び出し、PageSelection.allPages() を使用して、トークンが現れるすべての場所をカバーする置換を行います。 HTMLから生成されたドキュメントの場合、このワークフローは renderHtmlAsPdf の後に一連の置換呼び出しを続けることで同様に機能します。 これをPDFウォーターマーク背景と前景と組み合わせて、最終出力にブランディングや機密標識を追加してください。

JavaでのPDFテキスト置換の次のステップとは?

このガイドでは、PageSelection.firstPage() を使った単ページ置換、PageSelection.pageRange() を使った選択的な多ページ置換、PageSelection.allPages() を使った文書全体の置換、および PageSelection ファクトリーメソッドのフルセットを取り上げました。 同じ replaceText API は、HTMLからレンダリングされたドキュメントであれ、ディスクから読み込まれたものであれ、複数のソースを統合して組み立てたものであれ、機能します。

IronPDF for Javaを無料で試用開始し、上記のコード例を自分のドキュメントに対して実行してみましょう。 本番環境への展開の準備が整ったら、ライセンスオプションを確認してください。 ライセンスは開発者ごとに発行され、1年間の製品更新が含まれます。

IronPDF for Java の他の機能を確認してみませんか? PDF生成、注釈、デジタル署名圧縮、その他のチュートリアルについて、完全なIronPDF for Java の使い方ガイドをご覧ください。

よくある質問

Javaを使ってPDFのテキストを置き換えるには?

IronPDF の replaceText メソッドを使用します。指定されたページのすべての発生を置き換えるには、pdf.replaceText(PageSelection.firstPage(), "oldText", "newText") を呼び出します。IronPDF は、オリジナルのフォーマットを保持しながら、すべての出現を見つけて置き換えます。

replaceText メソッドはどのようなパラメータを受け取りますか?

メソッドは3つのパラメータを受け取ります:変更するページを指定するための PageSelection、検索対象のテキストを含む String、および置換テキストを含む String です。たとえば、pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7") は最初のページ上のすべてのインスタンスを置き換えます。

特定のページのテキストだけを置き換えることはできますか?

はい。ページ0にはPageSelection.firstPage()、最終ページにはPageSelection.lastPage()、任意のページには0から始まるインデックスを使用したPageSelection.singlePage(n)、非連続のページには整数のリストでPageSelection.pageRange()を使用します。

置換対象のテキストが見つからなかった場合はどうなりますか?

IronPDFは、対象のテキストがターゲットのページに見つからない場合、ランタイム例外(Exception_RemoteException)をスローします。replaceTextを呼び出す前に、文字列が存在することを確認するためにPDFテキストを抽出し、try-catchブロックでラップしてください。

テキストの一致は大文字と小文字を区別しますか?

はい。replaceTextメソッドは正確で大文字と小文字を区別した一致を行います。"Version 1.0""version 1.0""VERSION 1.0"は3つの異なる値として扱われます。メソッドを呼び出す前に、正確な大文字小文字の確認を行ってください。

replaceTextはフォームフィールドの値を変更しますか?

いいえ。replaceTextメソッドはPDFコンテンツストリーム上で操作を行い、インタラクティブなフォームフィールドの値を変更しません。フォームフィールドを更新するには、IronPDFのPdfDocumentフォームメソッドを使用して専用のフォーム編集APIを使用してください。

トークンをすべてのページに一度に置換するにはどうすればよいですか?

replaceTextの最初の引数としてPageSelection.allPages()を使用します。これにより、すべてのページで対象のテキストのすべてのインスタンスが置換され、テンプレート駆動のワークフローでドキュメント全体のプレースホルダーを使用する際に推奨される方法です。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。

準備はできましたか?
バージョン: 2026.6 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか?
サンプルを実行するHTML が PDF に変換されるのを確認します。