产品比较

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

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

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

HTML 转换为 PDF 的库

iTextSharp

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

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

IronPDF

IronPDF相比之下,C# 是一个专用于生成 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 包选项。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-1.webp)

![iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs (IronPDF) 图 2 - 在 Visual Studio 项目中安装 iTextSharp 的另一种方法:导航至工具菜单,选择 NuGet Package Manager > Manage NuGet Packages for Solution。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-2.webp)

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

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

![iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs (IronPDF) 图 3 - 在 "浏览 "选项卡的搜索框中输入 itext7.pdf。从搜索结果中选择 iText7.pdfhtml,然后点击安装按钮。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-3.webp)

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,点击安装按钮。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-4.webp)

安装 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。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-5.webp)

![iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs (IronPDF) 图 6 - 在 Visual Studio 项目中安装 IronPDF 库的另一种方法:在 "解决方案资源管理器 "中右击项目,选择 "管理 NuGet 包 "选项。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-6.webp)

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

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

![iTextSharp 利用 CSS 样式将 HTML 转换为 PDF 的 C# 示例 vs (IronPDF) 图 7 - 在 "浏览 "选项卡的搜索框中输入 ironpdf。从搜索结果中选择 IronPdf,点击安装按钮。](/static-assets/pdf/blog/itextsharp-html-to-pdf-css-style-example/itextsharp-html-to-pdf-css-style-example-7.webp)

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

使用 iTextSharp 将 HTML 转换为 PDF

iText7.pdfHTML 提供了一种灵活的方法来 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 样式定制时,iText7 就会大显身手。

使用 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 简化 HTMLtoPDF 转换的输出 PDF。

使用 CSS 资产的高级示例

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

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

效率和易用性

IronPDF这种方法非常适合需要无障碍数据转换过程的情况,既不需要深入研究复杂的 PDF 文档构建,也不需要任何其他依赖性。它抽象了许多基本的复杂性,并提供了用户友好的体验。

结论

在这次全面的比较中,我们探索了两个功能强大的 C# HTML 到 PDF 转换库: iTextSharpIronPDF.

iTextSharp 具有全面的 PDF 操作能力,为开发人员提供了精确控制 PDF 生成过程的工具。除了简单的 HTML 到 PDF 转换之外,它还能满足复杂的 PDF 定制需求。另一方面,IronPDF 作为一个专用库,专为轻松实现 HTML 到 PDF 的转换而设计。它提供了一种直观和用户友好的方法,非常适合于需要最少编码工作的简单任务。

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

IronPDF 可免费用于开发目的,但需要 特许 用于商业用途。它还提供了 免费试用.从 IronPDF 的 网站.

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

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

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