使用IRONPDF

C# 创建 PDF(代码示例教程)

在现代 C# .NET 开发中,生成 PDF 文档是一项常见且至关重要的需求,无论是用于开具发票、创建详细报告、存档网页内容还是确保文档共享安全。 开发人员通常会探索各种方法在 .NET 应用程序中生成 PDF,包括使用像 iTextSharp(现在的 iText 7)、PdfSharp、QuestPDF 这样知名的库,或利用内置的 .NET 功能来处理简单任务。 一些人还考虑集成第三方基于云的API或命令行工具,如wkhtmltopdf。

虽然这些多样化的选项存在,但找到一个完美平衡易用性、全面功能、先进渲染能力和强大性能的C# PDF库对于高效开发至关重要。 这正是IronPDF与众不同的地方,它为C#开发人员提供了一个强大而又极为直观的解决方案。 本教程将指导您使用IronPDF在C# .NET中创建PDF文档的简单过程,涵盖从基本的HTML字符串转换到渲染复杂网页的所有内容。 如果您正在寻找有效创建 PDF 文件的方法,那么您来对地方了。

IronPDF 是一个功能齐全的 PDF 库,适用于Java。 它是几种可用的第三方库之一,能够高效地创建、编辑和处理PDF文档,同时还能从其他文件类型(如HTML、PNG、RTF等)的内容中输出可编辑的PDF文件。 了解更多关于IronPDF和类似PDF库的信息,请查看不断增长的第三方库比较文章目录。

选择合适的C# PDF库:免费与商业选项

当开发者开始一个需要在C#中生成PDF的项目时,通常会权衡免费库与商业库的优缺点。 像 PDFSharp 或 QuestPDF 这样的免费库可以是基本 PDF 创建的优秀起点,或者在预算紧张时使用。 然而,它们可能在功能集方面存在限制,实现高级功能(例如像素级精确的HTML到PDF渲染)的复杂性,或专门专业支持的即时可用性方面存在不足。

像IronPDF这样的商业库虽然在生产环境中需要许可证,但通常会提供更简洁高效的开发体验。 它们通常具有更丰富的功能——包括高度精确的HTML、CSS和JavaScript到PDF渲染、全面的文档安全选项和强大的PDF操作工具。 此外,它们通常带有专业支持和定期更新的保证。 IronPDF 倡导对开发者友好的方法。 虽然它是为专业使用设计的商业库,但它为开发和测试提供了完全免费的许可证,并且有试用期供生产评估。 这使您能够在决定它是否是您需要创建具有高级功能的PDF文档的项目的最佳选择之前,充分探索其功能。

Get started creating PDFs now!

IronPdf.ChromePdfRenderer
       .StaticRenderHtmlAsPdf("<p>Hello Word</p>")
       .SaveAs("pixelperfect.pdf");
通过NuGet安装
green arrow pointer

PM >  Install-Package IronPdf

由于 HTML 是一种标记语言,因此很难将 HTML 内容转换成没有 HTML 标记的 PDF。 IronPDF 提供了功能,例如从 HTML 在 C# 中创建 PDF,因为它使用方便,并且具有使用 JavaScript、CSS 和图像等附加功能。

本文将详细介绍 IronPDF 提供的 HTML 到 PDF 的 C# 转换。

观看教程视频


C# 应用程序中 PDF 生成的常见场景

在开始编写代码之前,让我们考虑为什么您可能需要在C#中创建PDF:

  • 生成发票和收据:使用C#以编程方式创建PDF发票。 IronPDF 使使用 HTML 模板生成专业布局变得简单。
  • 创建动态报告:当您的C#应用程序需要使用数据生成复杂的PDF报告时,IronPDF的HTML到PDF渲染支持丰富的样式和动态内容。
  • 存档网页内容:使用IronPDF的精确URL和HTML渲染,将动态网页或HTML内容转换为标准化PDF格式,以实现可靠的长期存储或合规性。
  • 安全文档共享:使用 IronPDF 生成具备密码保护、加密和特定用户权限的 PDF 文件。
  • 生成票据、代金券或证书:创建具有独特动态生成内容的可打印文档。 IronPDF 将 HTML 转换为 PDF 的能力非常适合此类文档的模板化。

    IronPDF为所有这些用例及更多提供有效的解决方案。

1.在 Visual Studio 中创建新项目

打开 Visual Studio 软件,进入 "文件 "菜单。 选择“新建项目”,然后选择“控制台应用程序”。 本文将使用控制台应用程序生成 PDF 文档。

C# 创建 PDF(代码示例教程),图 01:在 Visual Studio 中创建一个新项目

在Visual Studio中创建新项目

在相应的文本框中输入项目名称并选择路径。 然后,点击下一步按钮。

C# 创建 PDF(代码示例教程),图 02:配置此项目

配置此项目

选择所需的 .NET Framework,然后单击下面所示的“创建”按钮:

C# 创建 PDF(代码示例教程),图 03:.NET Framework 选择

.NET Framework 选择

Visual Studio 项目现在将为选定的应用程序生成结构,如果您选择了控制台、Windows 或 Web 应用程序,它将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。

下一步是添加库和测试程序。

使用 Visual Studio NuGet 软件包管理器

Visual Studio 软件提供了 NuGet 软件包管理器选项,可直接将软件包安装到解决方案中。 下面的截图显示了如何打开 NuGet 包管理器。

如前所述,IronPDF 提供免费的开发和测试许可证。

C# 创建 PDF(代码示例教程),图 04:导航到 NuGet 包管理器

导航到NuGet包管理器

它提供了搜索框,显示 NuGet 网站上可用的软件包库列表。在软件包管理器中,搜索关键词 "IronPdf",如下截图所示:

C# 创建 PDF(代码示例教程),图 05:从 NuGet 包管理器安装 IronPdf 包

从 NuGet 软件包管理器安装 IronPDF 软件包

从上图中,从相关 NuGet 软件包列表中选择 IronPdf 选项,并安装该解决方案的软件包。

使用 Visual Studio 命令行

--LIBRARY_NUGET_INSTALL_BLOCK--

在 Visual Studio 菜单中,转到 工具 > NuGet 包管理器 > 包管理器控制台

C# 创建 PDF(代码示例教程),图 06:导航到包管理器控制台

导航到包管理器控制台

在“包管理器控制台”选项卡中输入以下行:

Install-Package IronPdf
Install-Package IronPdf
SHELL

2. 使用 RenderHtmlAsPdf() 从 HTML 创建 PDF

安装IronPDF后,最基本的任务之一就是通过C#从HTML字符串创建PDF。 这对于直接在应用程序中生成动态PDF内容非常有用。 您可以使用 IronPDF 的RenderHtmlAsPdf()方法来实现此功能。 这种方法非常适合在需要快速生成PDF时使用,比如简单的通知、确认或小型动态生成的片段。

using IronPdf;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new ChromePdfRenderer();
PdfDocument doc = renderer.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
using IronPdf;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new ChromePdfRenderer();
PdfDocument doc = renderer.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
Imports IronPdf

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim renderer = New ChromePdfRenderer()
Dim doc As PdfDocument = renderer.RenderHtmlAsPdf("<h1>This is a heading</h1>")
doc.SaveAs("FirstPDFDocument.pdf")
$vbLabelText   $csharpLabel

在此代码片段中,我们首先实例化ChromePdfRenderer。 然后,我们调用RenderHtmlAsPdf(),使用一个基本的HTML字符串。 最后,doc.SaveAs() 将生成的 PDF 保存为 'FirstPDFDocument.pdf'。 此文件将包含呈现的 H1 标签。 执行 C# 项目后,在项目的 bin 文件夹中会出现一个名为 "FirstPDFDocument.pdf "的文件,双击上述文件,PDF 文件就会在浏览器标签页中打开。 使用 IronPDF,用 C# 创建 PDF 文件或创建将 HTML 转换为 PDF 的 PDF 文件只需几行代码。

3. 从URL创建PDF文档

如果您的目标是使用 C# 从现有网页创建 PDF,那么 IronPDF 的 RenderUrlAsPdf() 方法就是您所需要的。 这对于存档网页内容、生成文章的PDF或捕获实时网站的状态非常有用。

using IronPdf;
using System;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
pdf.SaveAs("url.pdf");
using IronPdf;
using System;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
pdf.SaveAs("url.pdf");
Imports IronPdf
Imports System

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20")
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

在这里,RenderUrlAsPdf() 接受一个 URL 字符串,获取内容,渲染它,并生成一个 PdfDocumentusing 语句确保 PdfDocument 被正确处理。 生成的 'url.pdf' 将是指定网页的 PDF 版本。 以下是上述代码的输出结果。

C# 创建 PDF(代码示例教程),图 10:PDF 文件输出,从 URL 渲染

从 URL 渲染的 PDF 文件输出

将流行的复杂网站转换为 PDF 的其他示例。

C# 创建 PDF(代码示例教程),图 11:渲染复杂网站的另一个示例

渲染复杂网站的另一个示例

4. 将 ASP.NET MVC 渲染为 PDF

要在 ASP.NET MVC 应用中使用 C# 创建 PDF 文档(使用 .NET Framework),可以渲染 HTML 文件或字符串,然后将其作为 FileResult 返回。 这对于基于服务器端逻辑和数据生成PDF,然后直接将其传送到用户的浏览器非常有用。

using IronPdf;
using System.Web;
using System.Web.Mvc; // Required for ActionResult and EmptyResult

public class PdfController : Controller
{
    public ActionResult DownloadPdfFromHtmlFile()
    {
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
        var renderer = new IronPdf.ChromePdfRenderer();
        string htmlFilePath = HttpContext.Current.Server.MapPath("~/Project/MyHtmlDocument.html");
        using var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);

        var currentResponse = HttpContext.Current.Response;
        currentResponse.Clear();
        currentResponse.ContentType = "application/pdf";
        currentResponse.AddHeader("Content-Disposition", "attachment;filename=\"FileName.pdf\"");
        currentResponse.BinaryWrite(pdf.BinaryData);
        currentResponse.Flush();
        currentResponse.End();
        return new EmptyResult();
    }
}
using IronPdf;
using System.Web;
using System.Web.Mvc; // Required for ActionResult and EmptyResult

public class PdfController : Controller
{
    public ActionResult DownloadPdfFromHtmlFile()
    {
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
        var renderer = new IronPdf.ChromePdfRenderer();
        string htmlFilePath = HttpContext.Current.Server.MapPath("~/Project/MyHtmlDocument.html");
        using var pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath);

        var currentResponse = HttpContext.Current.Response;
        currentResponse.Clear();
        currentResponse.ContentType = "application/pdf";
        currentResponse.AddHeader("Content-Disposition", "attachment;filename=\"FileName.pdf\"");
        currentResponse.BinaryWrite(pdf.BinaryData);
        currentResponse.Flush();
        currentResponse.End();
        return new EmptyResult();
    }
}
Imports IronPdf
Imports System.Web
Imports System.Web.Mvc ' Required for ActionResult and EmptyResult

Public Class PdfController
	Inherits Controller

	Public Function DownloadPdfFromHtmlFile() As ActionResult
		IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
		Dim renderer = New IronPdf.ChromePdfRenderer()
		Dim htmlFilePath As String = HttpContext.Current.Server.MapPath("~/Project/MyHtmlDocument.html")
		Dim pdf = renderer.RenderHtmlFileAsPdf(htmlFilePath)

		Dim currentResponse = HttpContext.Current.Response
		currentResponse.Clear()
		currentResponse.ContentType = "application/pdf"
		currentResponse.AddHeader("Content-Disposition", "attachment;filename=""FileName.pdf""")
		currentResponse.BinaryWrite(pdf.BinaryData)
		currentResponse.Flush()
		currentResponse.End()
		Return New EmptyResult()
	End Function
End Class
$vbLabelText   $csharpLabel

在这个MVC控制器操作中,RenderHtmlFileAsPdf将指定的HTML文件转换为PDF。然后使用Response对象将PDF作为下载发送给客户端。 由于响应已被直接处理,因此返回EmptyResult

5. 将 Razor 视图渲染为 PDF

对于ASP.NET MVC应用程序,常见的任务是从Razor视图中使用C#创建PDF。 这使您可以使用现有的视图逻辑和模型生成动态HTML,IronPDF随后将其转换为PDF。 下面的辅助方法将Razor视图渲染为HTML字符串。

using IronPdf;
using System.IO;
using System.Web.Mvc; // Required for ControllerContext, ViewEngines, etc.

public string RenderRazorViewToString(ControllerContext controllerContext, string viewName, object model)
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    controllerContext.Controller.ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName);
        var viewContext = new ViewContext(controllerContext, viewResult.View, controllerContext.Controller.ViewData, controllerContext.Controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);
        viewResult.ViewEngine.ReleaseView(controllerContext, viewResult.View);
        return sw.GetStringBuilder().ToString();
    }
}
using IronPdf;
using System.IO;
using System.Web.Mvc; // Required for ControllerContext, ViewEngines, etc.

public string RenderRazorViewToString(ControllerContext controllerContext, string viewName, object model)
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    controllerContext.Controller.ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName);
        var viewContext = new ViewContext(controllerContext, viewResult.View, controllerContext.Controller.ViewData, controllerContext.Controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);
        viewResult.ViewEngine.ReleaseView(controllerContext, viewResult.View);
        return sw.GetStringBuilder().ToString();
    }
}
Imports IronPdf
Imports System.IO
Imports System.Web.Mvc ' Required for ControllerContext, ViewEngines, etc.

Public Function RenderRazorViewToString(ByVal controllerContext As ControllerContext, ByVal viewName As String, ByVal model As Object) As String
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
	controllerContext.Controller.ViewData.Model = model
	Using sw = New StringWriter()
		Dim viewResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName)
		Dim viewContext As New ViewContext(controllerContext, viewResult.View, controllerContext.Controller.ViewData, controllerContext.Controller.TempData, sw)
		viewResult.View.Render(viewContext, sw)
		viewResult.ViewEngine.ReleaseView(controllerContext, viewResult.View)
		Return sw.GetStringBuilder().ToString()
	End Using
End Function
$vbLabelText   $csharpLabel

此方法将ControllerContext、视图名称和模型转换为HTML字符串来渲染Razor视图。 然后,这个字符串可以传递给 IronPDF 的 RenderHtmlAsPdf() 方法,记得在 Razor 视图使用相对路径作为资源时设置 BaseUri。 请阅读.NET MVC PDF指南文档,了解如何将MVC视图呈现为二进制PDF文件。

6. 将XML转换为PDF

当您需要在C#中从XML数据创建PDF时, 一个强大的方法是首先使用XSLT(可扩展样式表语言转换)将XML转换为HTML。 然后,IronPDF 可以将生成的 HTML 转换为 PDF。 这对于以人类可读的格式呈现结构化的XML数据非常有用。

using IronPdf;
using System.Xml;
using System.Xml.Xsl;
using System.IO;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
string xsltContent = @"<xsl:stylesheet version='1.0' xmlns:xsl='[http://www.w3.org/1999/XSL/Transform](http://www.w3.org/1999/XSL/Transform)'>
                            <xsl:template match='/root'>
                                <html><body><h1>Items:</h1><ul><xsl:for-each select='item'><li><xsl:value-of select='.'/></li></xsl:for-each></ul></body></html>
                            </xsl:template>
                        </xsl:stylesheet>";
string xmlContent = "<root><item>Hello</item><item>World</item></root>";

XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(xsltContent))) {
    transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(xmlContent))) {
    transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf");
using IronPdf;
using System.Xml;
using System.Xml.Xsl;
using System.IO;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
string xsltContent = @"<xsl:stylesheet version='1.0' xmlns:xsl='[http://www.w3.org/1999/XSL/Transform](http://www.w3.org/1999/XSL/Transform)'>
                            <xsl:template match='/root'>
                                <html><body><h1>Items:</h1><ul><xsl:for-each select='item'><li><xsl:value-of select='.'/></li></xsl:for-each></ul></body></html>
                            </xsl:template>
                        </xsl:stylesheet>";
string xmlContent = "<root><item>Hello</item><item>World</item></root>";

XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(xsltContent))) {
    transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(xmlContent))) {
    transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf");
Imports IronPdf
Imports System.Xml
Imports System.Xml.Xsl
Imports System.IO

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim xsltContent As String = "<xsl:stylesheet version='1.0' xmlns:xsl='[http://www.w3.org/1999/XSL/Transform](http://www.w3.org/1999/XSL/Transform)'>
                            <xsl:template match='/root'>
                                <html><body><h1>Items:</h1><ul><xsl:for-each select='item'><li><xsl:value-of select='.'/></li></xsl:for-each></ul></body></html>
                            </xsl:template>
                        </xsl:stylesheet>"
Dim xmlContent As String = "<root><item>Hello</item><item>World</item></root>"

Dim transform As New XslCompiledTransform()
Using reader As XmlReader = XmlReader.Create(New StringReader(xsltContent))
	transform.Load(reader)
End Using
Dim results As New StringWriter()
Using reader As XmlReader = XmlReader.Create(New StringReader(xmlContent))
	transform.Transform(reader, Nothing, results)
End Using
Dim Renderer As New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf")
$vbLabelText   $csharpLabel

这段代码片段定义了一个XSLT,用于将XML转换为简单的HTML列表。XslCompiledTransform执行转换,生成的HTML字符串随后由IronPDF渲染为‘Final.pdf’。

7. 生成PDF报告

要在 C# 中创建 PDF 报告,特别是那些带有自定义页眉、页脚和页码的报告,IronPDF 非常有效。典型的工作流程是将报告数据生成为 HTML 文档,然后使用 IronPDF 将此 HTML 转换为格式良好的 PDF。

using IronPdf;
using System.IO;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.FirstPageNumber = 1;
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.FontFamily = "Arial";
Renderer.RenderingOptions.TextHeader.FontSize = 12;
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.FontFamily = "Helvetica";
Renderer.RenderingOptions.TextFooter.FontSize = 10;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
File.WriteAllText("Report.html", "<html><body><h1>Sample Report Content</h1><p>This is a test report.</p></body></html>");
Renderer.RenderHtmlFileAsPdf("Report.html").SaveAs("Report.pdf");
using IronPdf;
using System.IO;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.FirstPageNumber = 1;
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.FontFamily = "Arial";
Renderer.RenderingOptions.TextHeader.FontSize = 12;
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.FontFamily = "Helvetica";
Renderer.RenderingOptions.TextFooter.FontSize = 10;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
File.WriteAllText("Report.html", "<html><body><h1>Sample Report Content</h1><p>This is a test report.</p></body></html>");
Renderer.RenderHtmlFileAsPdf("Report.html").SaveAs("Report.pdf");
Imports IronPdf
Imports System.IO

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim Renderer As New IronPdf.ChromePdfRenderer()
Renderer.RenderingOptions.FirstPageNumber = 1
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
Renderer.RenderingOptions.TextHeader.FontFamily = "Arial"
Renderer.RenderingOptions.TextHeader.FontSize = 12
Renderer.RenderingOptions.TextFooter.DrawDividerLine = True
Renderer.RenderingOptions.TextFooter.FontFamily = "Helvetica"
Renderer.RenderingOptions.TextFooter.FontSize = 10
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
File.WriteAllText("Report.html", "<html><body><h1>Sample Report Content</h1><p>This is a test report.</p></body></html>")
Renderer.RenderHtmlFileAsPdf("Report.html").SaveAs("Report.pdf")
$vbLabelText   $csharpLabel

此示例为页眉(显示源 URL)和页脚(带有日期、时间和页码)配置各种RenderingOptions。 然后将名为“Report.html”的HTML文件渲染为“Report.pdf”,并包含这些设置。

C# 创建 PDF(代码示例教程),图 12:CSharp 创建 PDF

CSharp 创建 PDF 示例输出

8. 使用PDF图像和CSS

当您使用 C# 从包含图像和外部 CSS 文件的 HTML 创建 PDF 文档时,确保 IronPDF 能找到这些资源至关重要。 这是通过向渲染方法提供一个BaseUri来实现的,它告诉IronPDF您的HTML中相对URL的根路径。

using IronPdf;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'><h1>Image Test</h1>",@"C:\site\assets\");
pdf.SaveAs("html-with-assets.pdf");

using var advancedPDF = renderer.RenderHtmlFileAsPdf("C:\\Assets\\TestInvoice1.html");
advancedPDF.SaveAs("Invoice.pdf");
using IronPdf;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'><h1>Image Test</h1>",@"C:\site\assets\");
pdf.SaveAs("html-with-assets.pdf");

using var advancedPDF = renderer.RenderHtmlFileAsPdf("C:\\Assets\\TestInvoice1.html");
advancedPDF.SaveAs("Invoice.pdf");
Imports IronPdf

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim renderer = New IronPdf.ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'><h1>Image Test</h1>","C:\site\assets\")
pdf.SaveAs("html-with-assets.pdf")

Dim advancedPDF = renderer.RenderHtmlFileAsPdf("C:\Assets\TestInvoice1.html")
advancedPDF.SaveAs("Invoice.pdf")
$vbLabelText   $csharpLabel

第一部分展示了使用图像渲染HTML字符串; BaseUri (C:\site\assets) 告诉 IronPDF 在哪里找到 icons/iron.png。 第二部分渲染一个HTML文件;如果TestInvoice1.html使用对象的相对路径,它们将相对于C:\Assets被解析。

9. 将ASPX文件转换为PDF

对于传统的ASP.NET Web Forms应用程序,IronPDF提供了一种直接从.aspx页面生成PDF的C#方法。 这需要 IronPdf.Extensions.ASPX NuGet 包,并且特定于 .NET Framework 项目。

using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class SiteMaster : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            IronPdf.AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class SiteMaster : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            IronPdf.AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
Imports System
Imports System.Web.UI
Imports IronPdf

Namespace aspxtopdf
	Partial Public Class SiteMaster
		Inherits MasterPage

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
			IronPdf.AspxToPdf.RenderThisPageAsPdf()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

在 ASP.NET 主页面(或任何 .aspx 页面)的 Page_Load 事件中,AspxToPdf.RenderThisPageAsPdf() 将当前页面的渲染输出转换为 PDF。 通常最好将其放在按钮单击事件中,以避免回发问题。

C# 创建 PDF(代码示例教程),图13:CSharp 创建 PDF

CSharp 创建 PDF 示例输出

10. 查看 HTML 到 PDF 示例文件

本示例重温了将实时URL转换为PDF的过程,这在您需要使用C#创建网页内容PDF档案或分享在线信息快照时是常见的需求。

using IronPdf;
using System;
using System.IO;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var uri = new Uri("https://www.c-sharpcorner.com/article/how-to-create-pdf-file-in-c-sharp-using-ironpdf/");
var pdf = ChromePdfRenderer.StaticRenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
using IronPdf;
using System;
using System.IO;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var uri = new Uri("https://www.c-sharpcorner.com/article/how-to-create-pdf-file-in-c-sharp-using-ironpdf/");
var pdf = ChromePdfRenderer.StaticRenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
Imports IronPdf
Imports System
Imports System.IO

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim uri As New Uri("https://www.c-sharpcorner.com/article/how-to-create-pdf-file-in-c-sharp-using-ironpdf/")
Dim pdf = ChromePdfRenderer.StaticRenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
$vbLabelText   $csharpLabel

此处,ChromePdfRenderer.StaticRenderUrlAsPdf() 提供了一种快速的静态方法,可以将给定 Uri 的内容直接转换为 PdfDocument,然后进行保存。 PDF 文件创建在 Debug 文件夹内。 下面是输出结果:

C# 创建 PDF(代码示例教程),图 14:CSharp 创建 PDF

CSharp 创建 PDF 示例输出

入门指南解释了如何通过NuGet安装IronPDF(适用于那些不熟悉NuGet包管理器的人)。

11. 在 .NET 中生成 PDF 文件

此示例进一步展示了在ASP.NET Web Forms环境中使用IronPDF来创建PDF文件,具体通过在按钮点击时将当前页面呈现为PDF。 这是一种典型的为Web表单或报告生成可下载PDF版本的场景。

using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            IronPdf.AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
using System;
using System.Web.UI;
using IronPdf;

namespace aspxtopdf
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            IronPdf.AspxToPdf.RenderThisPageAsPdf();
        }
    }
}
Imports System
Imports System.Web.UI
Imports IronPdf

Namespace aspxtopdf
	Partial Public Class _Default
		Inherits Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
		End Sub

		Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
			IronPdf.AspxToPdf.RenderThisPageAsPdf()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Button1被点击时,AspxToPdf.RenderThisPageAsPdf()会捕获当前ASP.NET页面的渲染输出并将其作为PDF流传输到浏览器。 请记住,这需要 IronPdf.Extensions.ASPX NuGet 包。

C# 创建 PDF(代码示例教程),图 15:CSharp 创建 PDF

CSharp 创建 PDF 示例输出

这需要从NuGet官方页面安装IronPdf.Extensions.ASPX。 由于 ASPX 已被 MVC 模型取代,因此在 .NET Core 中无法使用。

12. 生成 PDF 文档(更多基本示例)

这是一个从HTML字符串创建PDF的快速示例。 这在 HTML 内容较少或是动态生成的情况下,对于非常简单的 PDF 生成需求很有用。

using IronPdf;

private void HTMLString()
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    var renderer = new IronPdf.ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
    var outputPath = "ChromePdfRenderer.pdf";
    pdf.SaveAs(outputPath);
}
using IronPdf;

private void HTMLString()
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    var renderer = new IronPdf.ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
    var outputPath = "ChromePdfRenderer.pdf";
    pdf.SaveAs(outputPath);
}
Imports IronPdf

Private Sub HTMLString()
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
	Dim renderer = New IronPdf.ChromePdfRenderer()
	Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
	Dim outputPath = "ChromePdfRenderer.pdf"
	pdf.SaveAs(outputPath)
End Sub
$vbLabelText   $csharpLabel

这个私有方法演示了如何从一个简单的H1标签创建PDF并保存。

以下代码展示了如何在Page_Load事件中直接从ASPX页面创建PDF。 虽然可行,但由于页面生命周期事件和回发的问题,应谨慎使用这种方法; 通常,通过特定用户操作(如按钮点击)触发PDF生成更可靠。

using System;
using System.Web.UI;
using IronPdf;

protected void Page_Load(object sender, EventArgs e)
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
using System;
using System.Web.UI;
using IronPdf;

protected void Page_Load(object sender, EventArgs e)
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
Imports System
Imports System.Web.UI
Imports IronPdf

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
	IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
$vbLabelText   $csharpLabel

通过 Chromium 渲染引擎,IronPDF 可以很好地支持 JavaScript。但有一点需要注意,您可能需要在页面渲染时添加延迟,以便在生成 PDF 时让 JavaScript 有时间执行。

13. 用于 .NET 的 PDF 库(WinForms 示例)

IronPDF 可以轻松集成到 Windows Forms (WinForms) 桌面应用程序中以创建 PDF。 此示例演示如何从TextBox获取用户输入,并在单击Button时生成PDF。

using IronPdf;
using System.Windows.Forms;
using System;
using System.ComponentModel;
using System.Drawing;

namespace ReadPdf
{
    public partial class Form1 : Form
    {
        private TextBox textBox1;
        private Button button1;
        private IContainer components = null;

        public Form1()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
       {
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.button1 = new System.Windows.Forms.Button();
           this.SuspendLayout();

            this.textBox1.Location = new System.Drawing.Point(12, 12);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(260, 20);
            this.textBox1.TabIndex = 0;

            this.button1.Location = new System.Drawing.Point(12, 38);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(100, 23);
            this.button1.TabIndex = 1;
            this.button1.Text = "Create PDF";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 73);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox1);
            this.Name = "Form1";
            this.Text = "PDF Creator";
            this.ResumeLayout(false);
            this.PerformLayout();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            var renderer = new ChromePdfRenderer();
            string text = textBox1.Text;
            renderer.RenderHtmlAsPdf("<h1>"+ System.Net.WebUtility.HtmlEncode(text) +"</h1>").SaveAs("custom.pdf");
            MessageBox.Show("Done !");
        }
    }
}
using IronPdf;
using System.Windows.Forms;
using System;
using System.ComponentModel;
using System.Drawing;

namespace ReadPdf
{
    public partial class Form1 : Form
    {
        private TextBox textBox1;
        private Button button1;
        private IContainer components = null;

        public Form1()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
       {
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.button1 = new System.Windows.Forms.Button();
           this.SuspendLayout();

            this.textBox1.Location = new System.Drawing.Point(12, 12);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(260, 20);
            this.textBox1.TabIndex = 0;

            this.button1.Location = new System.Drawing.Point(12, 38);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(100, 23);
            this.button1.TabIndex = 1;
            this.button1.Text = "Create PDF";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 73);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox1);
            this.Name = "Form1";
            this.Text = "PDF Creator";
            this.ResumeLayout(false);
            this.PerformLayout();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
            var renderer = new ChromePdfRenderer();
            string text = textBox1.Text;
            renderer.RenderHtmlAsPdf("<h1>"+ System.Net.WebUtility.HtmlEncode(text) +"</h1>").SaveAs("custom.pdf");
            MessageBox.Show("Done !");
        }
    }
}
Imports IronPdf
Imports System.Windows.Forms
Imports System
Imports System.ComponentModel
Imports System.Drawing

Namespace ReadPdf
	Partial Public Class Form1
		Inherits Form

		Private textBox1 As TextBox
		Private WithEvents button1 As Button
		Private components As IContainer = Nothing

		Public Sub New()
			InitializeComponent()
		End Sub

		Protected Overrides Sub Dispose(ByVal disposing As Boolean)
			If disposing AndAlso (components IsNot Nothing) Then
				components.Dispose()
			End If
			MyBase.Dispose(disposing)
		End Sub

		Private Sub InitializeComponent()
			Me.textBox1 = New System.Windows.Forms.TextBox()
			Me.button1 = New System.Windows.Forms.Button()
		   Me.SuspendLayout()

			Me.textBox1.Location = New System.Drawing.Point(12, 12)
			Me.textBox1.Name = "textBox1"
			Me.textBox1.Size = New System.Drawing.Size(260, 20)
			Me.textBox1.TabIndex = 0

			Me.button1.Location = New System.Drawing.Point(12, 38)
			Me.button1.Name = "button1"
			Me.button1.Size = New System.Drawing.Size(100, 23)
			Me.button1.TabIndex = 1
			Me.button1.Text = "Create PDF"
			Me.button1.UseVisualStyleBackColor = True
'INSTANT VB NOTE: The following InitializeComponent event wireup was converted to a 'Handles' clause:
'ORIGINAL LINE: this.button1.Click += new System.EventHandler(this.button1_Click);

			Me.AutoScaleDimensions = New System.Drawing.SizeF(6F, 13F)
			Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
			Me.ClientSize = New System.Drawing.Size(284, 73)
			Me.Controls.Add(Me.button1)
			Me.Controls.Add(Me.textBox1)
			Me.Name = "Form1"
			Me.Text = "PDF Creator"
			Me.ResumeLayout(False)
			Me.PerformLayout()
		End Sub

		Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
			IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
			Dim renderer = New ChromePdfRenderer()
'INSTANT VB NOTE: The variable text was renamed since Visual Basic does not handle local variables named the same as class members well:
			Dim text_Conflict As String = textBox1.Text
			renderer.RenderHtmlAsPdf("<h1>" & System.Net.WebUtility.HtmlEncode(text_Conflict) &"</h1>").SaveAs("custom.pdf")
			MessageBox.Show("Done !")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

这段 WinForms 代码初始化了一个带有TextBoxButton的简单用户界面。 在按钮点击时,它从textBox1中获取文本,用H1 HTML标签包裹(确保对用户输入进行HTML编码以保证安全),并将其渲染到'custom.pdf'中。

14. Chrome PDF 渲染引擎

IronPDF的Chrome PDF渲染引擎保证从原始HTML源文件生成的PDF文档实现“与Chrome一致”的PDF渲染效果。

Chrome PDF 渲染功能的部分特点如下:

  • 速度提高20%:通过使用任意数量的CPU核心,提供轻松的多线程和异步处理。 对于SAAS和高负载应用程序,这可能会快5到20倍,性能优于直接使用浏览器和网络驱动程序。
  • 全面网络支持:全面支持JavaScript、响应式布局和CSS3。
  • 经过严格测试:该版本通过了1156项绿色单元和集成测试(没有失败的),确保了与主要版本类似的稳定性,并每天持续积极改进。
  • 第 508 条无障碍合规性:使用 PDF(UA) 标记的 PDF 标准生成无障碍 PDF。
  • Azure 作为一流选项:它就是如此出色地工作。
  • 继续维护和改进对 .NET 6、5、Core 和 Framework 4.0+ 的全面支持。

    探索Chrome 渲染引擎的多线程和异步支持功能

    下面是一个例子:

using IronPdf;
using IronPdf.Rendering;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
using var doc = renderer.RenderHtmlAsPdf("<h1>Hello world! This is sample for IronPdf</h1>");
doc.SaveAs("google_chrome.pdf");
using IronPdf;
using IronPdf.Rendering;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
using var doc = renderer.RenderHtmlAsPdf("<h1>Hello world! This is sample for IronPdf</h1>");
doc.SaveAs("google_chrome.pdf");
Imports IronPdf
Imports IronPdf.Rendering

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim doc = renderer.RenderHtmlAsPdf("<h1>Hello world! This is sample for IronPdf</h1>")
doc.SaveAs("google_chrome.pdf")
$vbLabelText   $csharpLabel

为什么选择IronPDF来满足您的PDF需求?

虽然有其他 PDF 库可用,但 IronPDF 为专注于高效和高质量 PDF 生成的开发者提供了几个引人注目的优势:

  • 像素级精确的HTML到PDF转换: 利用Chrome引擎,IronPDF确保当您从HTML创建PDF时,输出几乎与在现代网页浏览器中显示的效果相同,保留复杂的CSS和JavaScript。
  • 易用性:通过直观的API和全面的文档快速开始,正如本教程中所演示的那样。 将 HTML 字符串或 URL 转换为 PDF 等常见任务只需极少的代码。
  • 快速设置与集成:通过简单的NuGet安装和直观的API,在几分钟内开始在您的项目中创建PDF,不同于某些需要更复杂配置的库。
  • 全面的功能集: 除了从HTML创建基本的PDF之外,IronPDF还支持多种功能,包括页眉/页脚、表单填写、数字签名、密码保护、PDF合并等。
  • 性能和可扩展性:IronPDF专为现代多线程应用程序设计,能够处理要求高的PDF生成任务,并且在服务器环境中具有良好的可扩展性。
  • 优秀的支持和定期更新:享受专业支持和不断维护和改进的库。

常见问题 (FAQ)

问:在中从HTML创建PDF的最简单方法是什么?

许多开发人员发现 IronPDF 是最简单的方法之一,因为它的简单 RenderHtmlAsPdf 方法和对 HTML 标准的强大支持。 您可以仅用几行代码就从HTML字符串或URL创建PDF文件。

问:IronPDF是免费的PDF库吗?

IronPDF提供开发和测试的免费许可证。 生产部署需要商业许可证。 他们提供试用期以评估所有功能。

问:IronPDF 能否转换带有 JavaScript 和 CSS3 的复杂网页?

A:是的,IronPDF 使用了现代的 Chromium 引擎,能够很好地支持 HTML5、CSS3、JavaScript、响应式布局以及其他网页技术,以便在创建 PDF 文件时实现精确渲染。

问:IronPDF 能处理大型 PDF 的生成吗?

是的,IronPDF专为高性能设计,能够高效创建大尺寸的PDF文档。其渲染引擎和异步操作选项使其适合于高要求的应用程序。

15. 总结

感谢阅读! 本教程全面展示了在 .NET 中使用 IronPDF 创建 PDF 文档的几种强大方法。 无论您是需要将HTML转换为PDF、渲染URL,还是生成复杂报告,IronPDF都提供了一种直观且强大的解决方案。 其易用性,加上像JavaScript、CSS和图像支持这样的高级功能,使其成为开发人员高效制作高质量PDF文档的理想选择。

准备简化您的PDF生成并控制您的文档工作流程吗?

Chipego
奇佩戈-卡琳达
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
.NET Core PDF 库
下一步 >
x509certificate2 程序化添加数字签名到 PDF