产品比较

iTextsharp HTML转PDF带CSS样式C#示例与IronPDF

发布 2023年十一月13日
分享:

用 C# 中的 CSS 将 HTML 文件转换为 PDF 是现代网络和桌面应用程序开发中的常见要求。 它使开发人员能够将网页、报告或格式化文档转换为 PDF 文件,这对于生成发票、创建可打印报告或归档网页内容等任务至关重要。 在本综合指南中,我们将探讨两种流行的用于 HTML 到 PDF 转换的 C# 库。

HTML 转换为 PDF 的库

iTextSharp

iTextSharp是一个著名的开源库,常用于用 C# 创建和处理 PDF 文档。 现在,它通常被称为 iText7。虽然它的主要功能不是 HTML 到 PDF 的转换,但其强大的功能集使它成为实现这一目的的灵活选择。 它提供的 pdfHTML 是一个插件,允许开发人员使用字符串 HTML 片段和 CSS 样式表,以编程方式生成、转换和定制 PDF 文档。

虽然 iText7 可对 PDF 生成过程进行精细控制,但在处理具有复杂 HTML 布局的图像和具有复杂 CSS 风格的字体时,可能需要额外的工作。

IronPDF

探索 IronPDF 的功能作为专门设计用于生成 PDF 和将 HTML 页面转换为 PDF 格式的专用 C# 库。 它专注于简化将带有 CSS 的 HTML 内容转换为 PDF 文件的过程,是直接将 HTML 转换为 PDF 任务的绝佳选择。

IronPDF 的方法非常适合需要无障碍转换而又不会遇到复杂的 PDF 文档构造的情况。 它简化了开发人员的流程,并允许快速实施带有分页符的新文档。

安装和设置

在深入比较细节之前,我们先简单讨论一下如何在 C# 项目中设置这些库。

安装 iTextSharp

安装iTextSharp (iText7)使用 NuGet 软件包管理器,请按照以下步骤操作:

  1. Visual Studio或打开一个现有的

  2. 右键单击解决方案资源管理器中的项目并选择 "管理 NuGet 包",或单击 "工具 "菜单并选择 "NuGet 包管理器"-->"管理解决方案的 NuGet 包"。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF) 图 1 - 要在 Visual Studio 项目中安装 iTextSharp,请右键单击解决方案资源管理器中的项目,然后选择管理 NuGet 包选项。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF) 图 2 - 在 Visual Studio 项目中安装 iTextSharp 的另一种方法:导航至工具菜单,选择 NuGet Package Manager > Manage NuGet Packages for Solution。

  3. 在 "NuGet 包管理器 "窗口中,切换到 "浏览 "选项卡。

  4. 搜索 "iText7.pdfhtml",并从搜索结果中选择 "iText7.pdfhtml"。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF)图 3 - 在 浏览 选项卡的搜索框中输入 itext7.pdf。 从搜索结果中选择 iText7.pdfhtml,然后点击安装按钮。

  5. 点击 "安装 "按钮,将 iText7 HTML2PDF 转换器添加到项目中。

  6. 使用 HTML 转换器还需要一个重要的依赖项,即 "itext7.bouncy-castle-adapter"。 itext7.pdfhtml需要itext7.bouncy-castle-adapter模块,因为它提供了在创建和处理PDF文档过程中使用的加密算法和安全功能。

  7. 浏览 "itext7.bouncy-castle-adapter "并选择 "itext7.bouncy-castle-adapter 安装"。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF)图 4 - itext7.bouncy-castle-adapter 模块是使用 itext7.pdfhtml 的 HTML 转换器所需的另一个依赖项。 在 浏览 选项卡的搜索框中输入 itext7.bouncy-castle-adapter。 从搜索结果中选择 itext7.bouncy-castle-adapter,然后点击安装按钮。

安装 IronPDF

安装IronPDF同样简单明了:

  1. 在 Visual Studio 中创建新项目或打开现有项目。

  2. 右键单击 "解决方案资源管理器 "中的项目,选择 "管理 NuGet 包",或单击 "工具 "菜单,选择 "NuGet 包管理器" -> "管理解决方案的 NuGet 包"。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF) 图 5 - 要在 Visual Studio 项目中安装 IronPDF,请导航至工具菜单,选择 NuGet Package Manager > Manage NuGet Packages for Solution。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF) 图 6 - 在 Visual Studio 项目中安装 IronPDF 库的另一种方法:在 解决方案资源管理器 中右击项目,选择 管理 NuGet 包 选项。

  3. 在 "NuGet 包管理器 "窗口中,切换到 "浏览 "选项卡。

  4. 搜索 "IronPDF",并从搜索结果中选择 "IronPdf"。

    iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs(IronPDF)图 7 - 在 浏览 选项卡的搜索框中输入 ironpdf。 从搜索结果中选择 IronPDF,然后点击安装按钮。

  5. 点击 "安装 "按钮,将 IronPDF 添加到您的项目中。

使用 iTextSharp 将 HTML 转换为 PDF

iText7.pdfHTML 提供了一种灵活的方法来使用 iTextSharp 将 HTML 转换为 PDF**让开发人员能够控制 PDF 生成过程。 以下是将 HTML 文件转换为 PDF 的源代码:

using iText.Html2pdf;

// Input HTML page content with CSS styling
var html = "<html><head><style>body { font-family: Arial, sans-serif; }</style></head><body><h1>Hello, iText 7!</h1><p>This is a sample HTML to PDF conversion.</p></body></html>";

// Output PDF file path
string outputPdfPath = "results/output.pdf";

HtmlConverter.ConvertToPdf(html, new FileStream(outputPdfPath, FileMode.Create));
using iText.Html2pdf;

// Input HTML page content with CSS styling
var html = "<html><head><style>body { font-family: Arial, sans-serif; }</style></head><body><h1>Hello, iText 7!</h1><p>This is a sample HTML to PDF conversion.</p></body></html>";

// Output PDF file path
string outputPdfPath = "results/output.pdf";

HtmlConverter.ConvertToPdf(html, new FileStream(outputPdfPath, FileMode.Create));
Imports iText.Html2pdf

' Input HTML page content with CSS styling
Private html = "<html><head><style>body { font-family: Arial, sans-serif; }</style></head><body><h1>Hello, iText 7!</h1><p>This is a sample HTML to PDF conversion.</p></body></html>"

' Output PDF file path
Private outputPdfPath As String = "results/output.pdf"

HtmlConverter.ConvertToPdf(html, New FileStream(outputPdfPath, FileMode.Create))
VB   C#

上面的代码片段演示了如何使用 iText 7 的 "HtmlConverter "将纯文本或带有 CSS 样式的指定 HTML 内容转换为 PDF 文件。在 CSS 样式标签中,你还可以设置字体大小以及更多样式,如背景颜色、内容布局等。它定义输入的 HTML 内容,指定输出 PDF 文件路径,然后调用转换过程。 生成的 PDF 将保存在 outputPdfPath 中指定的位置。

使用 CSS 样式将 HTML 转换为 PDF 的 iTextSharp C# 示例 vs (IronPDF) 图 8 - 使用 iText7.pdfhtml 将 HTML 转换为 PDF 的输出 PDF

虽然 iText7 提供了精细的样式控制,但对于复杂的 HTML 布局或复杂的 CSS 样式,可能需要额外的代码。 不过,在需要进行 HTML 转换之外的大量 PDF 风格定制的情况下,它就会大显身手。

用 IronPDF 将 HTML 转换为 PDF

IronPDF简化了HTML 转换为 PDF提供了一种直接将 HTML 标记和 CSS 呈现到 PDF 文档中的简单方法。 下面是将 HTML 字符串转换为 PDF 页面的代码示例:

using IronPdf;

// Basic Example
// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Basic Example
// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Basic Example
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Create a PDF from a HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: Images, CSS and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
VB   C#

下面是对上述代码的更详细解释:

简化转换过程

在基本示例中,IronPdf 提供了一种将 HTML 转换为 PDF 文档的简化方法。 开发人员只需几行代码就能实现这一目标,如上面的源代码所示。 核心步骤包括创建一个 "PDFDocument",并将 HTML 内容直接渲染到其中。

iTextSharp HTML to PDF With CSS Styles C# 示例 vs (IronPDF) 图 9 - 使用 IronPDF for .NET Library 简化 HTML 到 PDF 转换的输出 PDF。

使用 CSS 资产的高级示例

在高级示例中,代码加载的 HTML 元素内容包括一张图片(<img src='icons/iron.png'>)并指定加载外部资产的基本路径(例如图像、外部 CSS 文件和 JavaScript 文件)使用 RenderHtmlAsPdf 方法。 生成的 PDF 文件包括 HTML 内容及其相关资产,保存为 "html-with-assets.pdf"。

iTextSharp HTML to PDF With CSS Styles C# 示例 vs (IronPDF) 图 10 - 使用 IronPDF for .NET Library 进行高级 HTML 到 PDF 转换的输出 PDF。

效率和易用性

IronPDF 的方法非常适合您需要无障碍数据转换过程的场景,无需深入了解 PDF 文档构建的复杂性,也不需要任何其他依赖性。 它抽象了许多底层的复杂性,提供了用户友好的体验。

结论

在这篇详尽的比较中,我们探讨了两个功能强大的库,用于在 C# 中将 HTML 转换为 PDF:iTextSharpIronPDF.

iTextSharp 具有全面的 PDF 操作能力,为开发人员提供了精确控制 PDF 生成过程的工具。 在需要进行复杂的 PDF 定制而非简单的 HTML 到 PDF 转换的情况下,它表现出色。 另一方面,IronPDF 作为一个专门设计用于将 HTML 轻松转换为 PDF 的专用库,也大放异彩。 它提供了一种直观、用户友好的方法,非常适合那些只需少量编码工作的简单任务。

要在这两个库之间做出正确的选择,需要考虑 PDF 需求的复杂性。 如果您需要广泛的自定义功能和高级 PDF 功能,iTextSharp 将是您的不二之选。 不过,如果想快速高效地将 HTML 转换为 PDF,而不需要复杂的 PDF 修改和其他库依赖,IronPDF 不失为一个高效且用户友好的选择。 它还提供高级 PDF 操作选项。

查看IronPDF 的定价和许可详情由于该翻译用于开发目的是免费的,但需要获得商业使用许可。 下载IronPDF如需免费试用,请访问 IronPDF 网站。

< 前一页
IronPDF 与 Puppeteer C#:比较
下一步 >
如何使用iTextSharp合并PDF文件

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >