在生产环境中测试,无水印。
随时随地满足您的需求。
获得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");
}
首先,我们定义要转换成 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);
}
}
}
首先,我们要为 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 的更多信息。