在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
"便携式文档格式 "或 PDF 是 Adobe 公司创建的一种文件格式。 在提交需要对文本和照片进行格式化的论文时,PDF 文件就会派上用场。 在当今世界,PDF 文件是必不可少的,所有企业部门都使用它来创建文档和开具发票。 得益于目前市场上的多个 PDF 库,创建 PDF 几乎成为了一种本能。要选择适合自己的 PDF 库,关键是在为自己的项目使用一个 PDF 库之前,要权衡每个 PDF 库的优势和特点。
在本文中,我们将了解如何使用 iTextSharp C# 在 PDF 中添加页码。 另外,我们将比较iTextSharp与IronPDF。
使用任何集成开发环境创建一个新的 C# 项目。
创建一个新的 PDF 对象。
在 HTML 页脚添加页码。
根据 HTML 资料创建 PDF。
IronPDF 是一个强大的 PDF .NET Framework,开发人员可以轻松用于生成、查看和编辑 PDF。 IronPDF 是一款复杂的工具,内部使用 chromium 引擎。 它可以将 HTML5、JavaScript、CSS 和图片文件转换为 PDF,添加自定义页眉和页脚,并生成与浏览器中显示完全一致的 PDF。 IronPDF 支持许多在线和 .NET 格式,包括 HTML、ASPX、Razor View 和 MVC。
能轻松分离和合并大量 PDF 文档的页面。
要了解更多关于IronPDF文档的信息,请参考此处。
在 Visual Studio 工具中,选择 NuGet 包管理器,就能在工具下找到 Visual Command-Line 界面。 应在软件包管理终端选项卡中输入以下命令。
Install-Package IronPdf
或者,我们也可以使用软件包管理器方法。 使用 Visual Studio 的 NuGet 包管理器选项,可以直接将软件包安装到解决方案中。 在 NuGet 网站上有一个用于查找软件包的搜索框。我们只需在软件包管理器中查找 "IronPDF",如下图所示:
相关搜索结果列表显示在上图中。 要在系统中安装软件包,请进行必要的选择。
现在软件包已经下载并安装完毕,可以在当前项目中使用。
iTextSharp 是一个用于在 C# 中生成和修改 PDF 文档的灵活库。 它提供多种功能,如加密、PDF 合并、文本和图片提取等。 iTextSharp 是一款高效的工具,可用于多种任务,包括为 PDF 添加页码。
使用 NuGet 软件包管理器查找 iText。 iText7 和 iText.pdfhtml 是必须安装的软件,因为 iText 的功能分属多个软件包。
如果选择 Visual Command-Line 界面,则需要安装以下软件包:
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对象。 通过此配置,每次向 PDF 文档添加新页面时,PageNumberEventHandler 类的 OnEndPage 函数将被调用,在每页底部添加页码。 我们还可以使用现有的 PDF 文档来添加页码。
总之,IronPDF在专长、可用性以及与.NET环境的无缝集成方面,使其成为需要HTML到PDF转换及相关功能的场景的最佳选择,即使iTextSharp在C# PDF操作库的领域中仍然是一个强劲的竞争者。 有了 IronPDF,您可以从 HTML 内容创建发票、报告和动态生成的文档,其简便性、有效性和适应性是在现代开发环境中取得成功所必需的。
IronPDF 的$749 Lite 版包含永久许可、升级选项和一年的软件维护。 带水印的试用期允许用户在实际环境中对产品进行评估。 访问许可证页面。 访问此网站以了解更多有关Iron Software的信息。