如何替換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 控制台錯誤顯示 Exception_RemoteException,提示在替換文字".NET7"時找不到指定的文本

replaceText 需要哪些參數?

```java :title=取代文字範例 import com.ironsoftware.ironpdf.*; import com.ironsoftware.ironpdf.edit.PageSelection; 導入 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 com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
導入 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 com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
導入 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選擇13頁)
  • pageRange(List<Integer> pageList) :從清單中選擇特定頁面(例如, [0, 2]選擇1頁和3頁)
  • 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 文件的原始格式。當您取代文字時,新的內容會繼承與原始文字相同的字型、大小、顏色和樣式,確保您的文件在修改後仍能保持一致的外觀。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。

準備好開始了嗎?
版本: 2025.12 剛剛發布