如何在PDF中替換文本

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

要使用IronPDF Java 替換 PDF 中的文本,請使用 replaceText 方法,並使用 PageSelection 指定頁面並提供舊文本字串和新文本字串。 這使得 PDF 內容能夠自動編輯,用於修復拼字錯誤、更新資訊和自訂範本。

快速入門:以 Java 取代 PDF 中的文字

  1. 將IronPDF依賴項新增至您的專案中
  2. 建立或載入 PDF 文檔
  3. 撥打 pdf.replaceText(PageSelection.firstPage(), "oldText", "newText")
  4. 使用 pdf.saveAs("output.pdf") 儲存修改後的 PDF 文件

介紹

IronPDF 的文字替換功能為開發人員提供了強大的工具,可以透過程式修改現有的 PDF 內容。 無論您是更新產品文件、修正產生的報告中的錯誤,還是使用範本建立個人化文檔,replaceText 方法都能精確控制內容修改。 在處理PDF 表單或需要在更新特定文字元素時保持一致格式時,此功能尤其有用。

如何替換單頁上的文字?

要替換文本,只需呼叫 replaceText 方法。 此方法接受三個參數:PageSelection 指定頁面,一個字串表示舊文本,第三個參數是新文本。 在下面的範例中,PageSelection.firstPage() 取得 PDF 的第一頁。 所有 .NET6 實例均替換為 .NET7。 如果找不到指定的舊文本,則該方法將拋出運行時異常。

 IronPDF控制台錯誤,在替換文字

replaceText 需要哪些參數?

```java :title=取代文字範例 import IronPDF.*; import IronPDF; 導入 java.io.IOException;

/**

  • 主要應用程式類,用於示範如何替換 PDF 中的文字。 */ public class App {

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

    // 設定IronPDF許可證密鑰 - 生產環境必需
    License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
    
    // 將 HTML 內容渲染成 PDF
    // 這會根據 HTML 內容建立一個新的 PDF 文件
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
    
    // 定義要取代的舊文本和新文本
    String oldText = ".NET6";  // 要搜尋的文字
    String newText = ".NET7";  // 取代文字
    
    // 將第一頁所有 oldText 替換為 newText
    // PageSelection.firstPage() 僅針對第一頁(索引 0)
    pdf.replaceText(PageSelection.firstPage(), oldText, newText);
    
    // 儲存產生的 PDF 文檔
    pdf.saveAs("replaceText.pdf");

    } }

提示所有頁面索引均採用從零開始的索引方式。

replaceText 方法預設執行區分大小寫的匹配。 "net6"和"NET6"被視為不同的字串。 在進行HTML 轉 PDF 轉換時,請確保搜尋文字與渲染後的 PDF 中顯示的文字完全一致。 對於更高級的文字操作,可以考慮從 PDF 中提取文字以驗證內容,然後再進行替換。

輸出結果是什麼樣子的?


如何跨多個頁面替換文字?

使用相同的 replaceText 方法取代多個頁面上的文字。 從 PageSelection 類別呼叫 pageRange 方法,並輸入整數清單來指定頁碼。 下面的範例僅取代第一頁和第三頁上的文字。 此方法適用於在特定頁面上具有一致頁首或頁尾的文檔,或在更新 PDF 中多個位置出現的資訊時。

我可以替換哪些頁面的文字?

import IronPDF.*;
import IronPDF;
導入 java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * Main application class for demonstrating how to replace text on multiple pages of a PDF.
 */
public class App {

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

        // Set the IronPDF license key - see https://ironpdf.com/java/licensing/
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // HTML content that will be converted to a 3-page PDF
        // Page breaks are created using CSS page-break-after property
        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>";

        // Render the HTML content into a PDF
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

        // 定義要取代的舊文本和新文本
        String oldText = ".NET6";
        String newText = ".NET7";

        // Define the pages where text replacement should occur 
        // Page numbers are zero-indexed: 0 = first page, 2 = third page
        List<Integer> pages = Arrays.asList(0, 2);

        // Replace the text on specified pages only
        // The second page (index 1) will remain unchanged
        pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);

        // 儲存產生的 PDF 文檔
        pdf.saveAs("replaceTextOnMultiplePages.pdf");
    }
}
import IronPDF.*;
import IronPDF;
導入 java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * Main application class for demonstrating how to replace text on multiple pages of a PDF.
 */
public class App {

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

        // Set the IronPDF license key - see https://ironpdf.com/java/licensing/
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // HTML content that will be converted to a 3-page PDF
        // Page breaks are created using CSS page-break-after property
        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>";

        // Render the HTML content into a PDF
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

        // 定義要取代的舊文本和新文本
        String oldText = ".NET6";
        String newText = ".NET7";

        // Define the pages where text replacement should occur 
        // Page numbers are zero-indexed: 0 = first page, 2 = third page
        List<Integer> pages = Arrays.asList(0, 2);

        // Replace the text on specified pages only
        // The second page (index 1) will remain unchanged
        pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);

        // 儲存產生的 PDF 文檔
        pdf.saveAs("replaceTextOnMultiplePages.pdf");
    }
}
JAVA

從 HTML 建立多頁 PDF 時,了解自訂 PDF 頁面大小頁面方向設定有助於確保內容在應用文字取代之前在所有頁面上正確顯示。

替換過程中跳過頁面會發生什麼?


有哪些頁面選擇選項?

使用 PageSelection 方法可讓開發人員指定要修改的頁面。 完整的參數列表如下。

請注意PageSelection 類別方法是靜態的。 無需建立實例。 頁面索引從 0 開始。

哪些方法針對單一頁面,哪些方法針對多個頁面?

  • allPages: 選擇 PDF 的所有頁面
  • firstPage: 選擇 PDF 的第一頁
  • lastPage: 選擇 PDF 的最後一頁
  • pageRange(int startIndex, int endIndex): 指定頁範圍(例如,02 選擇頁 3)
  • pageRange(List<Integer> pageList): 從清單中選擇特定頁面(例如,[0, 2] 選擇頁 13)
  • singlePage(int pageIndex): 指定 PDF 的單頁。

我應該在什麼情況下使用哪種頁面選擇方法?

使用 firstPage()lastPage() 可以快速編輯文件的頁首和頁尾。 更新多個連續頁面(如章節)時,請選擇 pageRange()。 選擇 singlePage() 進行針對性更正,應用 allPages() 對整個文件進行全域查找和替換操作。

使用合併的 PDF時,請使用 pageRange() 僅更新特定來源文件中的頁面。 同樣地,在處理具有書籤和大綱的文件時,可以使用頁面範圍來定位特定部分。

文字替換最佳實踐

在Java應用程式中實作文字替換時,請考慮以下重要因素:

效能最佳化:在應用程式啟動時載入一次許可證金鑰,而不是在每次操作之前都載入。 這樣可以提高處理多個文件時的效能。 了解更多關於如何有效使用許可證密鑰的資訊。

錯誤處理:將文字取代操作放在 try-catch 區塊中,以便優雅地處理潛在的異常。 最常見的例外情況是找不到指定的文字。 考慮實施驗證步驟,首先從 PDF 中提取文字以驗證其是否存在。

保留格式replaceText 方法保留原始文字格式,包括字體系列、大小、顏色和樣式。 這使其成為在保持視覺一致性的同時更新內容的理想選擇。 為了更好地控制格式,可以考慮使用自訂渲染設定從 HTML 重新產生 PDF。

處理複雜文件:對於包含表單的 PDF 文件,請使用專門的方法填寫 PDF 表單,而不是文字替換。 這樣可以確保表單欄位的功能保持不變。

常見用例

PDF 中的文字替換在不同行業中有著眾多實際應用:

基於模板的文件產生:建立可重複使用的 PDF 模板,其中包含可替換為實際資料的佔位符文字。 這種方法適用於發票、合約和報告,因為這些文件的佈局保持一致,但內容會有所不同。

大量文件更新:同時更新多個 PDF 文件中的公司資訊、地址或聯絡資訊。 這在品牌重塑或監管訊息發生變化時尤其有用。

在地化和翻譯:取代文字內容,為不同市場建立文件的在地化版本。 結合自訂字體支持,確保各種語言的字元正確渲染。

動態內容個人化:透過將佔位符文字替換為客戶特定訊息,為單一收件者個人化 PDF,從而為文件收件者創造更具吸引力的體驗。

常見問題解答

如何使用 Java 替換 PDF 中的文字?

要使用 IronPDF for Java 替换 PDF 中的文本,请使用 replaceText 方法。只需呼叫 pdf.replaceText(PageSelection.firstPage(), "oldText", "newText"),即可在指定的頁面上用新文字取代舊文字的所有實例。IronPDF 會自動找出並取代所有出現的文字,同時保持原始格式。

replaceText 方法需要哪些參數?

IronPDF 中的 replaceText 方法需要三個參數:PageSelection 用於指定要修改的頁面、包含要尋找的文字的字串,以及包含取代文字的字串。例如,pdf.re replaceText(PageSelection.firstPage(),".NET6",".NET7")會將第一頁上所有 '.NET6「 的實例更換為 」.NET7' 。

我可以只取代特定頁面上的文字嗎?

是的,IronPDF 允許您使用 PageSelection 參數替換特定頁面上的文字。您可以對第一頁使用 PageSelection.firstPage(),對最後一頁使用 PageSelection.lastPage(),或者使用 PageSelection.pageRange() 來指定應該進行文字替換的自定義頁面範圍。

如果找不到我要取代的文字該怎麼辦?

當 IronPDF 無法找到要取代的指定文字時,會產生運行時異常 (Exception_RemoteException)。這可確保您在替換作業失敗時知道,讓您能在 Java 應用程式中適當地處理錯誤。

我可以使用此功能更新範本或修正 PDF 中的錯字嗎?

絕對可以IronPDF 的文字替換功能非常適合更新範本、修正錯字以及自訂文件。無論您是修正已產生報表中的錯誤、更新產品文件,或是從模板中建立個人化文件,replaceText 方法都能精確控制內容修改。

取代的文字是否保持原始 PDF 格式?

是的,IronPDF 的 replaceText 方法可以保持 PDF 文件的原始格式。當您取代文字時,新的內容會繼承與原始文字相同的字型、大小、顏色和樣式,確保您的文件在修改後仍能保持一致的外觀。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。

準備好開始了嗎?
版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明?
執行範例 觀看您的 HTML 變成 PDF。