如何替換 PDF 中的文字

Chaknith related to 如何替換 PDF 中的文字
查克尼思·賓
2023年10月8日
已更新 2025年2月11日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English

替換 PDF 中的文字功能對於快速且精確地編輯內容非常有用,例如更正打字錯誤、更新資訊或為不同的目的自訂範本。 這可以節省大量的時間和努力,特別是在處理需要經常修改或個性化的文件時。

IronPDF 提供了一項在 PDF 中替換文字的功能。 此功能使IronPDF成為開發者和專業人士自動化或自定義PDF內容時不可或缺的工具。

開始使用 IronPDF

立即在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer



替換文字範例

"替換文字"動作可以應用於任何PdfDocument對象,無論是新渲染的還是導入的。 您可以透過提供舊文本和新文本來更換,利用ReplaceTextOnAllPages方法。 如果方法找不到指定的舊文本,它將引發一個異常,錯誤訊息為「替換文本時出錯:找不到文本「.NET6」。」

在下面的程式碼範例中,我們將展示如何在一個包含文本「.NET6」的新渲染PDF文件上替換文本。

代碼

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-all-page.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>");

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

// Replace text on all pages
pdf.ReplaceTextOnAllPages(oldText, newText);

pdf.SaveAs("replaceText.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>")

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

' Replace text on all pages
pdf.ReplaceTextOnAllPages(oldText, newText)

pdf.SaveAs("replaceText.pdf")
$vbLabelText   $csharpLabel

用換行符替換文本

替換文字操作支援換行符號,讓您可以用包含內建換行的字串取代舊文字,以便更好的格式化和視覺清晰度。

要實現這一點,請在新字串中加入換行符號(\n)。 使用上面的範例,我們將newText替換為.NET7\nnewline而不是僅替換為.NET7.


在指定頁面上替換文字

為了在文件中更精確地替換文字,IronPDF還提供了在單一頁面或多個頁面上替換文字的選項,具體取決於您的需求。 您可以使用ReplaceTextOnPage方法替換特定頁面的文本,並使用ReplaceTextOnPages方法替換文件中多個指定頁面的文本。

提示
所有頁面索引均遵循基於零的索引。

替換單頁文字

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-on-single-page.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>");

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

// Replace text on page 1
pdf.ReplaceTextOnPage(0, oldText, newText);

pdf.SaveAs("replaceTextOnSinglePage.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>")

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

' Replace text on page 1
pdf.ReplaceTextOnPage(0, oldText, newText)

pdf.SaveAs("replaceTextOnSinglePage.pdf")
$vbLabelText   $csharpLabel

替換多頁上的文本

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-on-multiple-pages.cs
using IronPdf;

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>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

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

int[] pages = { 0, 2 };

// Replace text on page 1 & 3
pdf.ReplaceTextOnPages(pages, oldText, newText);

pdf.SaveAs("replaceTextOnMultiplePages.pdf");
Imports IronPdf

Private html As String = "<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>"

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

Private pages() As Integer = { 0, 2 }

' Replace text on page 1 & 3
pdf.ReplaceTextOnPages(pages, oldText, newText)

pdf.SaveAs("replaceTextOnMultiplePages.pdf")
$vbLabelText   $csharpLabel

輸出 PDF


使用自定義字體

相同的ReplaceTextOnPage方法還允許您使用自定義字體和大小。首先,需要將字體添加到PDF中,然後您可以將字體名稱作為參數傳遞給該方法。 在以下範例中,我將使用Pixelify Sans Font

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-custom-font.cs
using IronPdf;
using System.IO;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Use custom font .NET6</h1>");

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

// Add custom font
byte[] fontByte = File.ReadAllBytes(@".\PixelifySans-VariableFont_wght.ttf");
var pdfFont = pdf.Fonts.Add(fontByte);

// Use custom font
pdf.ReplaceTextOnPage(0, oldText, newText, pdfFont, 24);

pdf.SaveAs("replaceCustomText.pdf");
Imports IronPdf
Imports System.IO

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Use custom font .NET6</h1>")

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

' Add custom font
Private fontByte() As Byte = File.ReadAllBytes(".\PixelifySans-VariableFont_wght.ttf")
Private pdfFont = pdf.Fonts.Add(fontByte)

' Use custom font
pdf.ReplaceTextOnPage(0, oldText, newText, pdfFont, 24)

pdf.SaveAs("replaceCustomText.pdf")
$vbLabelText   $csharpLabel

結果

使用自定義字體
Chaknith related to 結果
軟體工程師
Chaknith 是開發者界的夏洛克福爾摩斯。他第一次意識到自己可能有個軟體工程的未來,是在他為了娛樂而參加程式挑戰的時候。他的重點是 IronXL 和 IronBarcode,但他也引以為豪的是,他幫助客戶解決所有產品的問題。Chaknith 利用他與客戶直接對話中獲得的知識,以進一步改進產品。他的實際反饋超越了 Jira 工單,並支持產品開發、文件撰寫和行銷,以提升客戶的整體體驗。不在公司時,他通常在學習機器學習、寫程式和徒步旅行。