在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
「便攜式文件格式」,或稱 PDF,是由 Adobe 創建的一種文件格式。 PDF 在呈現需要排版的文字和照片的文件時非常實用。 在當前世界中,PDF 文件是必不可少的,並在所有企業部門中用於文件創建和開票。 由於市場上有多個 PDF 函式庫,目前創建 PDF 幾乎成為本能。在為您的專案選擇合適的 PDF 函式庫時,至關重要的是在使用之前權衡各個函式庫的優勢和特點。
在本文中,我們將了解如何使用 iTextSharp C# 在 PDF 中添加頁碼。 此外,我們將比較iTextSharp與IronPDF.
使用任何 IDE 創建一個新的 C# 專案。
創建一個新的 PDF 物件。
將頁碼添加到 HTML 頁腳。
從 HTML 材料創建 PDF。
IronPDF是一個強大的 PDF .NET Framework,開發人員可以輕鬆用來生成、查看和編輯 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 文本的頁腳部分。
這個方法返回的 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 的更多資訊。