在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
「便攜式文件格式」,或稱 PDF,是由 Adobe 創建的一種文件格式。 PDF 在呈現需要排版的文字和照片的文件時非常實用。 在當前世界中,PDF 文件是必不可少的,並在所有企業部門中用於文件創建和開票。 由於市場上有多個 PDF 函式庫,目前創建 PDF 幾乎成為本能。在為您的專案選擇合適的 PDF 函式庫時,至關重要的是在使用之前權衡各個函式庫的優勢和特點。
在本文中,我們將了解如何使用 iTextSharp C# 在 PDF 中添加頁碼。 另外,我們將比較 iTextSharp 與 IronPDF。
使用任何 IDE 創建一個新的 C# 專案。
創建一個新的 PDF 物件。
將頁碼添加到 HTML 頁腳。
從 HTML 材料創建 PDF。
IronPDF 是一個功能強大的 PDF .NET 框架,開發人員可用它輕鬆製作、查看和編輯 PDF。 IronPDF 是一個在內部使用 Chromium 引擎運行的複雜工具。 它可以將 HTML5、JavaScript、CSS 和圖像文件轉換為 PDF,添加自定義的頁眉和頁腳,並精確地生成與瀏覽器中顯示相同的 PDF。 IronPDF 支援許多線上和網路格式,包括 HTML、ASPX、Razor View 和 MVC。
能夠輕鬆分離和合併多個 PDF 文件的頁面。
要了解更多有關 IronPDF 文件的資訊,請參閱這裡。
在 Visual Studio 工具中,選擇 NuGet 套件管理員,然後您可以在工具下找到 Visual 命令列介面。 以下命令應輸入到套件管理終端選項卡中。
Install-Package IronPdf
或者我們可以使用套件管理器方法。 可以使用 Visual Studio 的 NuGet 套件管理器選項將套件直接安裝到解決方案中。 在 NuGet 網站上有一個搜尋框可用於尋找套件。我們只需要在套件管理器中搜尋「IronPDF」,如下圖所示:
相關搜尋結果的列表顯示在上圖中。 要在您的系統上安裝該套件,請進行必要的選擇。
現在已下載並安裝該套件,可以在當前專案中使用。
iTextSharp 是一個靈活的庫,用於在 C# 中生成和修改 PDF 文檔。 它提供多項功能,如加密、PDF 合併、文字和圖片提取等。 iTextSharp 是一個高效的工具,可用於執行多項任務,包括向 PDF 新增頁碼。
使用 NuGet 套件管理器搜尋 iText。 由於 iText 功能分佈於多個套件,因此需要安裝 iText7 和 iText.pdfhtml。
如果您選擇使用可視化命令行界面,則需要安裝以下套件:
Install-Package iTextSharp
由於iText 7是最新版本,因此我們正在使用它作為我們的解決方案。
通過 IronPDF 的綜合庫,為 PDF 文件添加頁碼變得簡單易行。 舉例來說,請查看以下程式碼。
using IronPdf;
static void main(string [] args)
{
var renderer = new IronPdf.HtmlToPdf();
private string header = "<h1>Hello Ironpdf!<h1>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};
// Add footer
pdf.AddHtmlFooters(htmlFooter);
pdf.SaveAs("output.pdf");
}
using IronPdf;
static void main(string [] args)
{
var renderer = new IronPdf.HtmlToPdf();
private string header = "<h1>Hello Ironpdf!<h1>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(header);
HtmlHeaderFooter htmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
};
// Add footer
pdf.AddHtmlFooters(htmlFooter);
pdf.SaveAs("output.pdf");
}
Imports IronPdf
Shared Sub main(ByVal args() As String)
Dim renderer = New IronPdf.HtmlToPdf()
private String header = "<h1>Hello Ironpdf!<h1>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(header)
Dim htmlFooter As New HtmlHeaderFooter() With {.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"}
' Add footer
pdf.AddHtmlFooters(htmlFooter)
pdf.SaveAs("output.pdf")
End Sub
首先,我們定義需要轉換成 PDF 的 HTML 文本。 此 HTML 內容可能包含單一 HTML 段落或整個 HTML 頁面。 接下來,我們創建一個HTMLToPdf類的實例,該類提供HTML轉PDF的轉換功能RenderHtmlAsPdf。
HTML 內容作為參數傳遞給RenderHtmlAsPdf 函數。 我們指定需要轉換成 PDF 的 HTML 材料。 頁碼以佔位符的形式呈現,即此 HTML 文字中頁腳部分的{page} of {total-pages}。
此方法將生成的 PDF 文件作為PdfDocument對象返回。 使用SaveAs方法,我們將 PDF 文件儲存為名為 "output.pdf" 的檔案。 或者,我們可以使用 OpenInDefaultPDFViewer 函數通過系統的預設 PDF 閱讀器打開已建立的 PDF 文件。 我們也可以使用上述方法向現有的 PDF 文件添加頁碼。
要了解有關IronPDF代碼的更多資訊,請參考這裡。
首先,讓我們使用 iTextSharp 生成一個新的 PDF 文件。 以下是如何創建帶有頁碼的新 PDF 文件的基本示例:
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string [] args)
{
// Create a new PDF document
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
doc.Open();
doc.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
doc.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string [] args)
{
// Create a new PDF document
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
doc.Open();
doc.Add(new Paragraph("Hello, world!"));
// Attach page number event to PDF writer
writer.PageEvent = new PageNumberEventHandler();
// Close the document
doc.Close();
}
}
public class PageNumberEventHandler : PdfPageEventHelper
{
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
PdfPTable table = new PdfPTable(1);
table.TotalWidth = 300f;
table.HorizontalAlignment = Element.ALIGN_CENTER;
PdfPCell cell = new PdfPCell(new Phrase($"Page {writer.PageNumber}"));
cell.Border = 0;
table.AddCell(cell);
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace ConsoleApp1
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim doc As New Document()
Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("output.pdf", FileMode.Create))
doc.Open()
doc.Add(New Paragraph("Hello, world!"))
' Attach page number event to PDF writer
writer.PageEvent = New PageNumberEventHandler()
' Close the document
doc.Close()
End Sub
End Class
Public Class PageNumberEventHandler
Inherits PdfPageEventHelper
Public Overrides Sub OnOpenDocument(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnOpenDocument(writer, document)
End Sub
Public Overrides Sub OnEndPage(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnEndPage(writer, document)
Dim table As New PdfPTable(1)
table.TotalWidth = 300F
table.HorizontalAlignment = Element.ALIGN_CENTER
Dim cell As New PdfPCell(New Phrase($"Page {writer.PageNumber}"))
cell.Border = 0
table.AddCell(cell)
table.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent)
End Sub
Public Overrides Sub OnCloseDocument(ByVal writer As PdfWriter, ByVal document As Document)
MyBase.OnCloseDocument(writer, document)
End Sub
End Class
End Namespace
首先,我們正在為Document和PdfWriter創建一個新對象,這使我們能夠創建一個空的 PDF 文件。您可以在 PDF 文檔中包含文本、照片、表格和其他類型的材料。 讓我們利用新的段落來添加一些示範用的範例文本。 現在重要的步驟是將頁碼添加到 PDF 文件中。 我們將使用 iTextSharp 的頁面事件來做到這一點。 為了能夠覆寫在 PDF 生成過程中發生特定事件時調用的方法,我們首先構建一個繼承自PdfPageEventHelper類的類別。
在這個類別中,重寫了OnEndPage函數,以新增一個包含當前頁碼的單個儲存格的表格。 最後,在我們關閉文件之前,我們需要將我們的PageNumberEventHandler類的一個實例連接到PdfWriter對象。 透過這個配置,PageNumberEventHandler 類別的 OnEndPage 函數將在每次新增頁面至 PDF 文檔時被調用,在每頁底部添加頁碼。 我們也可以使用現有的 PDF 文件來添加頁碼。
總而言之,IronPDF 的專業化、可用性及與 .NET 環境的無縫整合,使其成為需要 HTML 轉換為 PDF 及相關功能的情境中的最佳選擇,儘管 iTextSharp 仍然是在 C# PDF 操作庫中具有競爭力的對手。 使用 IronPDF,您可以輕鬆地從 HTML 內容創建發票、報告和動態生成的文件,以在現代開發環境中取得成功所需的效率、有效性和適應性。
IronPDF 的 $749 Lite 版本包含永久許可證、升級選項和一年的軟體維護。 水印試用期讓用戶可以在實際環境中評估產品。 訪問許可證頁面。 請造訪此網站以了解更多有關 Iron Software 的資訊。