PDF API 适用于 .NET Core:在C#中生成和编辑PDF
IronPDF .NET Core PDF API 概述,并排显示代码编辑器、HTML 到 PDF 转换和输出文档。
IronPDF 是一款适用于 .NET Core 和 .NET 10 的 PDF API,可通过 C# 代码生成、转换和编辑 PDF 文档。 安装 NuGet 包,创建 ChromePdfRenderer 实例,然后只需几行代码即可从 HTML 字符串、实时 URL 或现有文件生成 PDF。
在 .NET Core 应用程序中,生成发票、报告、合同和合规文档所需的 PDF 文件是标准要求。 面临的挑战是寻找一款能够准确渲染 HTML、与 ASP.NET Core 和 Blazor 无缝集成、在 Windows、Linux 和 macOS 系统上输出结果一致,且无需额外工具即可处理数字签名和密码保护等高级操作的库。 本指南将带您逐步了解 IronPDF 的 .NET Core PDF API,内容涵盖从安装到最常见的文档操作,每项操作均配有可运行的 C# 代码示例。
如何在 .NET Core 中开始使用 IronPDF?
使用包管理器控制台或 .NET CLI 从 NuGet 安装 IronPDF:
# Package Manager Console
Install-Package IronPdf
# .NET CLI
dotnet add package IronPdf
# Package Manager Console
Install-Package IronPdf
# .NET CLI
dotnet add package IronPdf
安装完成后,请在应用程序启动时在 Program.cs 中添加您的许可证密钥:
using IronPdf;
// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
using IronPdf;
// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronPdf
' Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY"
提供免费试用版供评估,无需信用卡。 IronPDF 支持 .NET 10、.NET 9、.NET 8、.NET Framework 4.6.2 及以上版本,以及所有主流的 .NET Core 版本。 该库可在 Windows、macOS 和 Linux 上运行,无需额外的运行时依赖项,因此适用于容器化部署以及包括 Azure、Docker 和 AWS 在内的云环境。
对于ASP.NET Core项目,在构建应用程序之前,在 Program.cs 中注册 IronPDF 服务,然后通过标准依赖注入容器注入 ChromePdfRenderer。 IronPDF 可与 ASP.NET Core 项目类型集成,包括 Web API、MVC、Razor Pages 和 Blazor Server。 该 NuGet 包作为单一依赖项进行安装,无需原生运行时库或外部可执行文件,从而使您的持续集成 (CI) 管道和容器镜像保持简洁。 在 Linux 或 macOS 环境中部署时,除标准的 .NET Standard SDK 外无需额外配置。
因为 ChromePdfRenderer 是线程安全的,所以你可以将其注册为单例并在请求处理程序之间共享它。 在高吞吐量场景中,创建渲染器实例池或使用异步渲染方法(RenderHtmlAsPdfAsync,RenderUrlAsPdfAsync)以避免在 PDF 生成运行时阻塞请求线程。 IronPDF 的许可页面涵盖了生产环境中的部署席位和并发线程限制。
如何使用 C# 将 HTML 生成 PDF?
HTML 转 PDF 是 .NET PDF API 最常见的应用场景。 IronPDF 的 ChromePdfRenderer 可转换 HTML 字符串、本地文件或实时 URL,同时保留 CSS 样式、字体、JavaScript 输出以及图像在 Chrome 中的渲染效果。
using IronPdf;
// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
<style>
body { font-family: Arial; font-size: 14px; margin: 40px; }
h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
table { border-collapse: collapse; width: 100%; margin-top: 16px; }
td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
th { background: #3498db; color: white; }
</style>
</head>
<body>
<h1>Sales Report - Q4 2025</h1>
<p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
<table>
<tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
<tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
<tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
</table>
</body>
</html>";
var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
using IronPdf;
// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
<style>
body { font-family: Arial; font-size: 14px; margin: 40px; }
h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
table { border-collapse: collapse; width: 100%; margin-top: 16px; }
td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
th { background: #3498db; color: white; }
</style>
</head>
<body>
<h1>Sales Report - Q4 2025</h1>
<p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
<table>
<tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
<tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
<tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
</table>
</body>
</html>";
var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
Imports IronPdf
' Create the renderer and define HTML content with full CSS support
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<html>
<head>
<style>
body { font-family: Arial; font-size: 14px; margin: 40px; }
h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
table { border-collapse: collapse; width: 100%; margin-top: 16px; }
td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
th { background: #3498db; color: white; }
</style>
</head>
<body>
<h1>Sales Report - Q4 2025</h1>
<p>Generated on: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
<table>
<tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
<tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
<tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
</table>
</body>
</html>"
Dim document = renderer.RenderHtmlAsPdf(html)
document.SaveAs("sales-report.pdf")
输出PDF文档
Visual Studio 项目正在运行 IronPDF HTML 转 PDF 转换,生成带有样式数据表的格式化销售报告。
ChromePdfRenderer 返回一个 PdfDocument 对象,您可以将其保存到文件路径,导出到 byte[] 以进行 HTTP 响应,或写入 MemoryStream 以进行内存处理。 渲染器遵循所有 CSS 属性,包括自定义字体、flexbox、网格布局、媒体查询以及用于边距和页面大小控制的 @page 规则。 对于与 CSS 和图像资源一起存储在磁盘上的 HTML 模板,请使用文件路径调用 RenderHtmlFileAsPdf,而不是传递内联字符串。 IronPDF 会根据文件所在目录解析相对资源路径,因此链接的样式表和本地图片无需额外配置即可在输出中显示。
对于需要捕获实时网页的应用程序,请使用RenderUrlAsPdfAsync在执行 JavaScript 时截取任何 URL 的屏幕截图:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");
// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");
// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Render a live URL including all JavaScript-rendered content
Dim document = Await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report")
document.SaveAs("monthly-report.pdf")
' Return PDF bytes in an ASP.NET Core controller
Dim pdfBytes As Byte() = document.BinaryData
Return File(pdfBytes, "application/pdf", "report.pdf")
URL 渲染会在捕获前等待 JavaScript 执行完毕,从而确保动态加载的图表、表格和数据可视化内容在生成的 PDF 中正确显示。 您可以配置渲染选项来设置页面边距、纸张尺寸、方向以及 JavaScript 执行超时。 在渲染之前,还可以将身份验证 Cookie 和自定义 HTTP 头注入请求中,从而支持捕获需要登录会话的页面。
如何配置 PDF 页面布局和渲染选项?
RenderingOptions 属性控制页面尺寸、边距、方向以及在任何渲染调用执行之前 JavaScript 的等待行为。 在渲染器实例上设置这些属性一次,它们将应用于该实例生成的所有文档。
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 15;
renderer.RenderingOptions.MarginBottom = 15;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);
var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 15;
renderer.RenderingOptions.MarginBottom = 15;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);
var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
renderer.RenderingOptions.MarginTop = 15
renderer.RenderingOptions.MarginBottom = 15
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
' Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500)
Dim document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>")
document.SaveAs("landscape-report.pdf")
纸张尺寸值涵盖标准格式,包括 A4、A3、Letter、Legal 以及以毫米为单位的自定义尺寸。 边距属性接受以毫米为单位的数值,并分别应用于每一侧。 WaitFor API 控制 JavaScript 执行时间,这在 HTML 在渲染图表或计算表格值之前异步加载数据时非常有用。 对于使用 CSS 规则的页面,IronPDF 会尊重这些声明并直接应用它们。 请参阅完整的渲染选项参考文档,其中包含 Zoom 比例、背景颜色和 PDF 版本选择等完整属性列表。
如何将 DOCX 文件和图片转换为 PDF?
除了 HTML 之外,IronPDF 还能将 DOCX 文档、常见图像格式和 Markdown 文件转换为 PDF。 这支持处理接受多种输入类型的处理管道。
using IronPdf;
// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");
// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
using IronPdf;
// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");
// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
Imports IronPdf
' Convert a Word document to PDF while preserving its formatting
Dim docxPdf = New DocxToPdfRenderer().RenderDocxAsPdf("contract.docx")
docxPdf.SaveAs("contract.pdf")
' Combine multiple images into a single multi-page PDF
Dim images = {"page1.png", "page2.png", "page3.png"}
Dim imagePdf = ImageToPdfConverter.ImageToPdf(images)
imagePdf.SaveAs("scanned-document.pdf")
示例:输入 DOCX 与 输出 PDF
并排比较原始 Word 文档和 IronPDF 转换后的 PDF 输出,显示表格格式和样式得以保留。
DOCX 转 PDF 功能可保留源 WORD 文档中的段落样式、表格、页眉、页脚、嵌入图片和列表。 该图片转PDF转换器支持 JPEG、PNG、TIFF、BMP 和 GIF 格式,可自动优化输出文件大小,并支持将多张图片合并为单个分页文档。 这两个转换器都返回一个标准的 PdfDocument 实例,因此您可以将它们与合并、签名或水印等编辑操作链接起来。 对于由 WORD 生成的 DOCX 文件,该转换器在处理复杂表格结构和嵌入图片的同时,还能保持原始段落和标题的层级结构。
如何添加数字签名和表单字段?
生产文档工作流通常需要加密签名以确保真实性,并需要交互式表单字段来收集数据。 IronPDF 通过同一 API 提供数字签名和 PDF 表单支持。
using IronPdf;
using IronPdf.Signing;
// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);
// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";
pdf.SaveAs("signed-agreement.pdf");
using IronPdf;
using IronPdf.Signing;
// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);
// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";
pdf.SaveAs("signed-agreement.pdf");
Imports IronPdf
Imports IronPdf.Signing
' Load an existing PDF and apply a digital signature using an X.509 certificate
Dim pdf = PdfDocument.FromFile("agreement.pdf")
Dim signature = New PdfSignature("certificate.pfx", "pfx-password")
pdf.Sign(signature)
' Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation"
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd")
pdf.Form.FindFormField("Amount").Value = "$12,500.00"
pdf.SaveAs("signed-agreement.pdf")
已验证签名示例
Adobe Acrobat 显示了使用 IronPDF 的 PdfSignature API 签名的 PDF 文档上的已验证数字签名面板。
数字签名采用 PFX 格式的 X.509 证书,并符合 Adobe Acrobat 及其他 PDF 阅读器认可的 PDF 签名标准。 Acrobat 中的签名面板会确认证书颁发者、签名时间以及完整性状态。 PDF 表单 API 支持文本框、复选框、单选按钮和下拉菜单。 您可以通过编程方式创建表单模板,在运行时填充数据,并从已填写的文档中读取提交的字段值。 此模式适用于合同管理、人力资源入职流程以及自动化数据采集管道,在这些场景中,同一份 PDF 模板会在包含不同字段值的众多交易中被重复使用。
对于基于时间戳的签名,请传递一个配置了时间戳服务器 URI 的 PdfSignature 实例,以便由受信任的第三方而不是本地系统时钟来认证签名时间。 签名指南涵盖了可见签名图像、多签名人顺序签名以及证书验证选项。
如何编辑和处理现有的 PDF 文档?
IronPDF 允许您修改 PDF 文件,而无需从 HTML 重新构建。 通过编程方式添加页眉、页脚、水印、注释,或合并及拆分页面。
using IronPdf;
var document = PdfDocument.FromFile("report.pdf");
// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
rotation: 30, opacity: 50);
// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});
// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);
document.SaveAs("final-report.pdf");
// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
using IronPdf;
var document = PdfDocument.FromFile("report.pdf");
// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
rotation: 30, opacity: 50);
// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});
// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);
document.SaveAs("final-report.pdf");
// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
Imports IronPdf
Dim document = PdfDocument.FromFile("report.pdf")
' Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>", rotation:=30, opacity:=50)
' Add a branded header to every page
document.AddHtmlHeaders(New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
})
' Append supplementary pages from a second document
Dim appendix = PdfDocument.FromFile("appendix.pdf")
document.AppendPdf(appendix)
document.SaveAs("final-report.pdf")
' Export to bytes for HTTP streaming
Dim pdfBytes As Byte() = document.BinaryData
示例输出
!带有 IronPDF 机密水印和品牌页眉的 PDF 文档,页眉显示页码和附录页。
HTML 页眉和页脚 API支持模板变量,包括 {page}、{total-pages} 和 {date},用于动态内容。 自定义水印方法支持接收 HTML 片段,因此您可以通过一次调用,在所有页面上应用经过样式设置、旋转处理且半透明的叠加层。 您还可以按页面范围拆分 PDF、合并多个文档,并从任何 PDF 中提取嵌入的图像和文本内容。 文本提取功能可保持跨列和跨表的阅读顺序,从而简化后续的搜索索引、内容迁移或数据验证工作流。
如何应用密码保护和安全设置?
使用密码和权限标记保护 PDF 文档是财务报告、法律文件和人力资源记录的标准要求。
using IronPdf;
using IronPdf.Security;
var pdf = PdfDocument.FromFile("financial-report.pdf");
// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";
// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SaveAs("protected-report.pdf");
using IronPdf;
using IronPdf.Security;
var pdf = PdfDocument.FromFile("financial-report.pdf");
// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";
// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SaveAs("protected-report.pdf");
Imports IronPdf
Imports IronPdf.Security
Dim pdf = PdfDocument.FromFile("financial-report.pdf")
' Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password"
pdf.SecuritySettings.OwnerPassword = "admin-password"
' Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SaveAs("protected-report.pdf")
PDF 安全设置 API 采用 128 位或 256 位 AES 加密。 设置 UserPassword 要求读者在任何 PDF 查看器中打开文件时输入密码。 设置 OwnerPassword 限制程序修改和所有者级别的操作。 权限标志可独立控制打印质量、文本选择、注释以及表单字段访问。 应用安全设置后,BinaryData 属性会返回加密的 PDF 字节,以便存储或通过 HTTP 传输。 这些设置符合 PDF 规范的访问控制模型,因此受保护的文档可在 Adobe Acrobat、基于浏览器的 PDF 阅读器以及移动阅读应用中正确打开。
要移除您拥有的文档的保护,请加载该文件,并将所有者密码作为参数传递给 PdfDocument.FromFile,然后在不应用安全设置的情况下保存。 这使得在服务器端工作流中能够实现程序化文档处理,其中受密码保护的文件作为输入到达,并在重新分发前必须进行转换。
下一步计划是什么?
IronPDF for .NET Core PDF API 支持通过 C# 处理完整的文档生命周期:从 HTML 字符串和 URL 生成文档、转换 DOCX 和图像文件、配置页面布局和渲染选项、编辑水印、页眉和页脚、应用数字签名,以及通过加密保护文档。 所有操作在 Windows、macOS 和 Linux 平台上的 .NET 8、.NET 9 及 .NET 10 环境中均采用一致的 API。
立即开始免费试用,使用您自己的文档体验 IronPDF。 如需了解其他应用场景,请查阅 HTML 转 PDF 渲染选项指南、PDF 压缩与优化指南,以及完整的 IronPDF 功能概述。 请查看生产部署的许可选项。
常见问题解答
什么是IronPDF的PDF API 适用于 .NET Core?
IronPDF是一个.NET库,可以在C#应用程序中生成、转换和编辑PDF文档。它作为一个单独的NuGet包安装,支持.NET 10,.NET 9,.NET 8,以及.NET Framework 4.6.2或更高版本。
如何在.NET Core中从HTML生成PDF?
创建一个ChromePdfRenderer实例,并使用HTML字符串调用RenderHtmlAsPdf,或者使用URL调用RenderUrlAsPdfAsync。渲染器将HTML、CSS和JavaScript输出转换为可以保存或流式传输的PdfDocument对象。
如何在IronPDF中配置页面大小和边距?
在调用渲染方法之前,在renderer.RenderingOptions上设置属性。使用PaperSize来选择标准格式,PaperOrientation来选择纵向或横向,以及MarginTop、MarginBottom、MarginLeft、MarginRight来设置以毫米为单位的边距。
IronPDF可以在.NET Core中将DOCX文件转换为PDF吗?
可以。使用DocxToPdfRenderer.RenderDocxAsPdf与文件路径。转换器保留源Word文档的段落样式、表格、页眉、页脚和嵌入的图像。
如何在C#中为PDF添加数字签名?
使用PdfDocument.FromFile加载PDF,创建一个带有PFX证书路径和密码的PdfSignature,然后调用pdf.Sign(signature)。生成的文档在Adobe Acrobat中和合规的PDF查看器中显示为已验证。
如何使用IronPDF对PDF进行密码保护?
设置pdf.SecuritySettings.UserPassword作为打开密码,并设置pdf.SecuritySettings.OwnerPassword作为所有者密码。使用AllowUserPrinting、AllowUserCopyPasteContent和相关标志来控制个人权限。
如何在ASP.NET Core中将生成的PDF作为HTTP响应返回?
访问PdfDocument实例上的BinaryData属性以检索PDF作为字节数组,然后在ASP.NET Core控制器操作中使用File(pdfBytes, 'application/pdf', 'filename.pdf')返回。
IronPDF在.NET Core应用程序中能在Linux和macOS上运行吗?
可以。IronPDF在Windows、macOS和Linux上运行,无需额外的本地运行时依赖。它支持Docker、Azure和AWS的容器化部署,无需平台特定的配置。
如何使用IronPDF为PDF添加页眉和页脚?
使用包含HtmlFragment的HtmlHeaderFooter对象调用document.AddHtmlHeaders,页眉标记写在其中。使用模板变量{page}、{total-pages}和{date}来表示动态值。同样的API适用于页脚。
IronPDF在ASP.NET Core中是线程安全的吗?
ChromePdfRenderer是线程安全的,可以在依赖注入容器中注册为单例。对于高吞吐量的工作负载,请使用异步渲染方法(RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync)避免阻塞请求线程。



