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を呼び出し、結果を保存します:

```java :title=クイックスタート テキストの置換 //: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.IO/Exception;

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


<div class="hsg-featured-snippet">
    <h3>最小限のワークフロー(5ステップ)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">PDF内のテキストを置換するため for Javaライブラリをダウンロード</a></li>
        <li>既存のPDFを読み込むか、HTMLからPDFを生成する</li>
        <li>Call <code>pdf.replaceText(PageSelection, oldText, newText)</code> を呼び出して、対象ページで置き換えてください</li>
        <li>* <code>PageSelection</code> メソッドを使用して、変更するページを制御します</li>
        <li>更新したPDFを保存し、エクスポートするには <code>pdf.saveAs(&quot;output.pdf&quot;)</code></li>
    </ol>
</div>

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

`replaceText` メソッドは、1つ以上のページを対象とする `PageSelection`、検索する正確なテキスト、および置換文字列の3つの引数を受け取ります。 最初のページを対象とする場合は、`PageSelection.firstPage()`を指定してください。 そのページ上の検索文字列は、1回の呼び出しで全て置換されます。 対象のページでテキストが見つからない場合、このメソッドはランタイム例外をスローします。 以下のスクリーンショットは、コンソールに表示されるその例外の様子を示しています。

![replaceText 処理中にターゲットテキスト](/static-assets/ironpdf-java/howto/find-replace-text/cannotfindtext.webp)

### replaceText はどのようなパラメータを受け付けますか?

メソッドのシグネチャは `replaceText(PageSelection pageSelection, String oldText, String newText)` です。 デフォルトでは大文字と小文字が区別されます。つまり、`"net6"` と `"NET6"` は異なる文字列として扱われます。 メソッドを呼び出す前に、生成されたPDF内の大文字小文字の表記を正確に確認してください。 正確なテキストを確認するには、まず[PDFのテキストコンテンツを抽出](https://ironpdf.com/java/examples/extract-image-from-pdf/)してください。IronPDF for Java依存関係は[Maven Central](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf)で公開されており、Java 8以降が必要です。

```java :title=最初のページのテキストを置換
//: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.IO/Exception;

public class App {

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

        // IronPDF ライセンスキーを設定します(本番環境での使用に必須)
        License.setLicenseKey(&quot;IronPDF-MYLICENSE-KEY-1EF01&quot;);

        // HTMLコンテンツをPDFドキュメントとしてレンダリングする
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");

        // 検索文字列と置換文字列を定義する
        String oldText = &quot;.NET6&quot;;
        String newText = &quot;.NET7&quot;;

        // 1ページ目のみ、oldText のすべての出現箇所を置換してください
        // PageSelection.firstPage() はページインデックス 0 を対象とします
        pdf.replaceText(PageSelection.firstPage(), oldText, newText);

        // 変更したPDFを保存
        pdf.saveAs(&quot;replaceText.pdf&quot;);
    }
}

ヒント個々の操作の前にではなく、アプリケーションの起動時に一度だけライセンスキーを読み込む。 これにより、同じJVMセッション内で複数のドキュメントを処理する際の初期化オーバーヘッドの重複を回避できます。

replaceText メソッドは、IronPDFのHTMLからPDFへの変換ワークフローにシームレスに統合されます。 まずHTMLテンプレートをレンダリングし、その後テキスト置換を適用して動的な値を挿入してください。 これにより、HTMLをクリーンな状態に保ちつつ、パーソナライズされた出力を生成できます。 ディスクから読み込んだドキュメントについては、renderHtmlAsPdf を使用する代わりに、ファイルパスを PdfDocument.fromFile に渡してください。

翻訳後の出力はどのようなものになりますか?


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

最初のページだけでなく特定のページを対象とするには、0を起点とするページ番号のリストを PageSelection.pageRange(List<Integer>) に渡してください。 このメソッドは、リスト内の各ページで検索テキストを置換し、それ以外のページには一切手を加えません。 このパターンは、既知のページでヘッダーやフッターが統一されている文書、または特定のページにのみバージョン文字列が表示されるバッチ生成レポートに適しています。

ページリストを使用する際、どのページが変更されますか?

以下の例では、HTMLから3ページのPDFが生成されています。 置換対象は、0 および 2 のページ(1ページ目と3ページ目)です。 ページ 1(2ページ目)は、原文をそのまま維持します。 ページインデックスは、Javaの0ベースの配列表記規則に準拠し、常に 0 から始まります。

```java :title=特定の複数のページ上のテキストを置換する //: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.IO/Exception; import java.util.Arrays; import java.util.List;

public class App {

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

    // IronPDFのライセンスキーを設定する
    License.setLicenseKey(&quot;IronPDF-MYLICENSE-KEY-1EF01&quot;);

    // CSSの改ページ機能を使用して、HTMLから3ページのPDFを作成する
    String html = &quot;<p> .NET 6 </p>&quot; +
                  &quot;<p> これは1ページ目です </p>&quot; +
                  &quot;<div style="page-break-after:> always;"></div>&quot; +
                  &quot;<p> これは2ページ目です</p>&quot; +
                  &quot;<div style="page-break-after:> always;"></div>&quot; +
                  &quot;<p> .NET 6 </p>&quot; +
                  &quot;<p> これは3ページ目です</p>&quot;;

    PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

    String oldText = &quot;.NET6&quot;;
    String newText = &quot;.NET7&quot;;

    // ページ番号は0から始まります:0 = 1ページ目、2 = 3ページ目
    // ページインデックス 1(2ページ目)は意図的に除外されています
    List<integer> pages = Arrays.asList(0, 2);</integer>

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

    pdf.saveAs(&quot;replaceTextOnMultiplePages.pdf&quot;);
}

}


ご注意IronPDF のすべてのページインデックスは、0 ベースのインデックス付けに従います。 ページ `0` は最初のページ、ページ `1` は 2 ページ目、というように続きます。)}]
HTMLから複数ページのPDFを作成する際は、[CSS](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after)の[`page-break-after`プロパティ](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after)を使用して、ページ境界の位置を制御してください。 レンダリング前に適切な[カスタム用紙サイズ](https://ironpdf.com/java/examples/custom-pdf-paper-size/)と[ページ向き](https://ironpdf.com/java/examples/pdf-page-orientation/)を設定することで、テキスト置換の実行時にコンテンツの位置が期待どおりになることが保証されます。 保存後、PDFを開いて、対象のページのみが変更されていることを確認し、出力を検証してください。 ### 翻訳後の出力はどのようなものになりますか? <iframe loading="lazy" src="/static-assets/ironpdf-java/howto/find-replace-text/replaceTextOnMultiplePages.pdf" width="100%" height="400px"></iframe> <hr> ## 利用可能なページ選択オプションにはどのようなものがありますか? `PageSelection` クラスは、一般的なターゲティングパターンをすべて網羅する静的ファクトリメソッドを提供します。 インスタンスの作成は不要です; クラス上でメソッドを直接呼び出します。 すべてのインデックスは0から始まります。 ### どのメソッドが単一ページを対象とし、どのメソッドが複数ページを対象としていますか? <table class="content__data-table" data-content-table> <caption>replaceText API の PageSelection ファクトリメソッド</caption> | 方法 | 説明 | |---|---| | `PageSelection.allPages()` | ドキュメント内のすべてのページを選択します | | `PageSelection.firstPage()` | index ページの選択 `0` | | `PageSelection.lastPage()` | ドキュメントの長さにかかわらず、最終ページを選択します | | `PageSelection.singlePage(int pageIndex)` | 0を起点とするインデックスで特定のページを1つ選択します | | `PageSelection.pageRange(int startIndex, int endIndex)` | `startIndex` から `endIndex` までの連続した範囲を選択します(両端を含む) | | `PageSelection.pageRange(List<Integer> pageList)` | 任意のインデックスの組み合わせでページを選択します(例:`[0, 2]` は 1 ページ目と 3 ページ目を選択します)。 | </table> ### 各 PageSelection メソッドはいつ使用すべきですか? `allPages()` は、文書全体にわたるターゲットテキストを一度の呼び出しで一括置換できる、最もシンプルなグローバル置換の選択肢です。 本文に触れずに表紙や最終ページのフッターを素早く編集するには、`firstPage()` または `lastPage()` を使用してください。 章やセクションなど、連続したページにテキストが表示される場合は、`pageRange(int, int)` を選択してください。 対象ページが連続していない場合は、`pageRange(List<Integer>)`を使用してください。 例えば、1ページ目、3ページ目、7ページ目のみに表示されるバージョン文字列を置換する場合など。 [結合されたPDF](https://ironpdf.com/java/examples/split-pdfs/)や、[ブックマークやアウトライン](https://ironpdf.com/java/how-to/bookmarks/)を含むドキュメントを扱う場合は、まず各論理セクションのページ範囲を特定し、共有されているヘッダーやフッターを誤って変更しないよう、対象を絞った置換を行ってください。 [IronPDF for Java APIリファレンス](https://ironpdf.com/object-reference/api/)には、すべての`PageSelection`オーバーロードと、完全なパラメータのドキュメントが記載されています。
重要Wrap `replaceText` の呼び出しを try-catch ブロックで囲みます。 このメソッドは、指定された検索テキストが対象ページ内のいずれにも見つからない場合、ランタイム例外をスローします。 検証ステップ(テキストを抽出し、その文字列が存在することを確認する)により、本番環境での予期せぬ障害を防止します。}}]
### すべてのページのテキストを一度に置き換えるにはどうすればよいですか? `PageSelection.allPages()` は、1回の呼び出しでドキュメント全体にわたる置換を実行します。これは、グローバルなトークン置換を行う上で最も効率的なアプローチです。 以下の例では、ディスクからPDFを読み込み、ドキュメント全体にわたってプレースホルダートークンが使用されている箇所をすべて置換しています: ```java :title=全ページのテキストを置換 //: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.IO/Exception; import java.nio.file.Paths; public class App { public static void main(String[] args) throws IOException { // IronPDFのライセンスキーを設定する License.setLicenseKey(&quot;IronPDF-MYLICENSE-KEY-1EF01&quot;); // ディスクから既存のPDFを読み込む PdfDocument pdf = PdfDocument.fromFile(Paths.get(&quot;contract-template.pdf&quot;)); // すべてのページでプレースホルダトークンを同時に置換する // これは、各ページに対して個別にreplaceTextを呼び出すのと同じです pdf.replaceText(PageSelection.allPages(), &quot;{{VERSION}}&quot;, &quot;2.0&quot;); // 更新されたドキュメントを保存 pdf.saveAs(&quot;contract-v2.pdf&quot;); } }

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


一般的なテキスト置換のケースにはどのように対応すればよいですか?

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

大文字小文字を区別する検索は結果にどのような影響を与えますか?

replaceText は、大文字と小文字を区別した完全一致検索を行います。 文字列 "version 1.0"、および "VERSION 1.0" は、それぞれ独立した値として扱われます。 ディスクから読み込んだドキュメントに対して置換処理を実行する前に、元のソースを確認するか、PDFからテキストを抽出してプログラムで検証し、大文字小文字の正確性を確認してください。

PDFフォーム内のテキストを置き換えるにはどうすればよいですか?

PDF仕様で定義されているように、インタラクティブなフォームフィールドを含むPDFでは、テキスト値はドキュメントのコンテンツストリームとは別に保存されます。 replaceText メソッドはコンテンツストリームに対して動作し、フォームフィールドの値を変更することはありません。 フォームフィールド内のテキストを更新するには、代わりにIronPDFの専用のフォーム作成および編集APIを使用してください。 同じドキュメント内で両方のアプローチを併用しても問題ありません。フォームフィールドの更新とコンテンツストリームの置換は、互いに干渉しません。

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

一般的な手法として、プレースホルダトークン(例:{{CUSTOMER_NAME}}[INVOICE_DATE])を含むPDFテンプレートを用意し、実行時にそれらを実際の値に置き換える方法があります。 プレースホルダーごとに replaceText を 1 回呼び出し、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.5 just released
Still Scrolling Icon

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

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