在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
"便携式文档格式",简称 PDF,是 Adobe 公司创建的一种文件格式。在提交需要格式化文本和照片的文件时,PDF 文件就派上了用场。在当今世界,PDF 文件是必不可少的,所有企业部门都使用它来创建文档和开具发票。得益于目前市场上的多个 PDF 库,创建 PDF 几乎已成为一种本能。要选择适合自己的 PDF 库,在为项目使用一个 PDF 库之前,权衡每个 PDF 库的优势和特点至关重要。
在本文中,我们将了解如何使用 iTextSharp C# 在 PDF 中添加页码。此外,我们还将比较 iTextSharp 与 IronPDF.
1.使用任何集成开发环境创建一个新的 C# 项目。
2.创建一个新的 PDF 对象。
3.在 HTML 页脚添加页码。
4.根据 HTML 资料创建 PDF。
5.将 PDF 文件保存到电脑中。
IronPDF IronPDF 是一个强大的 PDF .NET 框架,开发人员可利用它轻松制作、查看和编辑 PDF。IronPDF 是一款内部使用 chromium 引擎运行的复杂工具。它能将 HTML5、JavaScript、CSS 和图片文件转换为 PDF,添加自定义页眉和页脚,并能精确地生成在浏览器中显示的 PDF。IronPDF 支持多种在线和网络格式,包括 HTML、ASPX、Razor View 和 MVC。
要了解有关 IronPDF 文档的更多信息,请参阅 *这里***.
在 Visual Studio 工具中,选择 NuGet 软件包管理器,然后在工具下找到 Visual Command-Line 界面。在软件包管理终端选项卡中输入以下命令。
Install-Package IronPdf
或者,我们也可以使用软件包管理器方法。使用 Visual Studio 的 NuGet 软件包管理器选项,可以直接将软件包安装到解决方案中。NuGet 网站上有一个用于查找软件包的搜索框。我们只需在软件包管理器中查找 "IronPDF "即可,如下图所示:
相关搜索结果列表显示在上图中。要在系统中安装软件包,请进行必要的选择。
软件包已下载并安装完毕,可以在当前项目中使用。
iTextSharp 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 文本的页脚部分。
创建的 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尽管 iTextSharp 仍是 C# PDF 操作库中的有力竞争者,但 IronPDF 的专业性、可用性以及与 .NET 环境的无缝集成使其成为需要将 HTML 转换为 PDF 及相关功能的情况下的最佳选择。有了 IronPDF,您就可以从 HTML 内容创建发票、报告和动态生成的文档,其简易性、有效性和适应性是现代开发环境中取得成功所必需的。
IronPDF 的"$liteLicense "精简版包含永久许可证、升级选项和一年的软件维护服务。带水印的试用期允许用户在实际环境中对产品进行评估。访问许可证 页.转到此处 网站 了解有关 Iron Software 的更多信息。