在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
"便携式文档格式 "或 PDF 是 Adobe 公司创建的一种文件格式。 在提交需要对文本和照片进行格式化的论文时,PDF 文件就会派上用场。 在当今世界,PDF 文件是必不可少的,所有企业部门都使用它来创建文档和开具发票。 得益于目前市场上的多个 PDF 库,创建 PDF 几乎成为了一种本能。要选择适合自己的 PDF 库,关键是在为自己的项目使用一个 PDF 库之前,要权衡每个 PDF 库的优势和特点。
在本文中,我们将了解如何使用 iTextSharp C# 在 PDF 中添加页码。 此外,我们还将比较 iTextSharp 与 IronPDF.
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 文本的页脚部分。
创建的 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 文档来添加页码。
总而言之 IronPDFiTextSharp 的专业性、可用性以及与 .NET 环境的无缝集成,使其成为需要将 HTML 转换为 PDF 及相关功能的情况下的最佳选择,尽管 iTextSharp 仍是 C# PDF 操作库中的有力竞争者。 有了 IronPDF,您可以从 HTML 内容创建发票、报告和动态生成的文档,其简便性、有效性和适应性是在现代开发环境中取得成功所必需的。
IronPDF 的"$liteLicense "精简版许可中包含永久许可、升级选项和一年的软件维护服务。 带水印的试用期允许用户在实际环境中对产品进行评估。 访问许可证 页. 转到这里 网站 了解有关 Iron Software 的更多信息。