使用IRONPDF 使用 IronPDF 在 .NET 中将 HTML 转换为 PDF Curtis Chau 已更新:2026年1月22日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 IronPDF 是一款 .NET HTML 转 PDF 转换器,它使用 Chrome 的渲染引擎将 HTML 字符串、文件和网页转换为高质量的 PDF 文档,并支持精确的 CSS 渲染和 JavaScript 执行。 在 .NET 开发中,将 HTML 转换为 PDF 是一项复杂的挑战。 你需要一款能够处理现代 CSS 布局、正确执行 JavaScript 并生成高质量文档的 PDF 转换器——同时还要易于实现。 IronPDF通过基于 Chrome 的渲染来解决这些挑战,使您能够以浏览器质量的保真度转换 HTML 文件、字符串和网页。 本文探讨了如何在 .NET 应用程序中实现专业的 PDF 生成,从基本转换到高级功能,例如跨 Windows、Linux 和Azure 的数字签名和 PDF 操作。 您将学习如何使用异步操作来提高性能,以及如何使用自定义日志记录来进行调试。 IronPDF C# PDF 库主页横幅展示了其主要功能,包括 HTML 转 PDF、PDF 编辑功能、灵活的部署选项以及免费试用。 为什么选择 IronPDF 在 .NET 中将 HTML 转换为 PDF? Chrome渲染在PDF生成方面有哪些优势? IronPDF 的 Chrome 渲染引擎可提供卓越的渲染效果。 与使用过时的WebKit快照的库不同,IronPDF 使用了与 Google Chrome 相同的 Blink 技术。 您的 PDF 文件与 Chrome 打印预览中的显示效果完全一致——没有样式缺失或布局损坏。 了解Chrome 的渲染功能以及与竞争解决方案的比较。 IronPDF如何处理现代Web技术? 现代网络应用程序使用复杂的 CSS 和 JavaScript。 IronPDF 提供对 CSS3 的原生支持,包括 flexbox、网格系统、变换和动画。 引擎会在渲染之前处理 JavaScript,以确保动态生成的内容正确显示。 无论是转换文件还是渲染页面,IronPDF 都能捕捉到最终状态。 该库支持Bootstrap 布局、响应式设计和WebGL 内容。 为什么 API 设计对开发者友好? 该库通过简洁明了的 API 设计,优先考虑开发者体验。 你只需使用熟悉的 HTML 和 CSS,IronPDF 就能处理复杂的 HTML 和 CSS。 ChromePdfRenderer 类提供智能默认值,并在需要时提供细粒度的控制。 与QuestPDF或Syncfusion相比,IronPDF 提供了更优越的易用性。 如何在您的 .NET 8 项目中安装 IronPDF? 通过软件包管理器安装的最快方法是什么? 安装 IronPDF 只需几分钟。 在 Visual Studio 中使用程序包管理器控制台: Install-Package IronPdf 包管理器控制台显示 IronPDF NuGet 包的安装过程,正在下载多个依赖项。 此操作会下载软件包及其依赖项,并自动配置项目引用。 该软件包包含在运行时解析的平台特定二进制文件。对于更高级的场景,请探索Docker 部署或远程容器。 如何使用 .NET CLI 进行安装? 命令行安装: dotnet add package IronPdf 这对于 VS Code、Rider 或自动化流水线来说效果很好。 请查阅文档以获取特定于平台的说明,包括F# 支持。 那么,基于图形用户界面的安装方法呢? Visual Studio 的 NuGet 包管理器提供了一个可搜索的界面。 右键单击您的项目,选择"管理 NuGet 程序包",搜索"IronPdf",然后安装。 了解企业部署的高级配置。 安装IronPDF后如何配置? 添加命名空间: using IronPdf; using IronPdf.Rendering; // For rendering options using IronPdf.Editing; // For PDF editing features using IronPdf; using IronPdf.Rendering; // For rendering options using IronPdf.Editing; // For PDF editing features Imports IronPdf Imports IronPdf.Rendering ' For rendering options Imports IronPdf.Editing ' For PDF editing features $vbLabelText $csharpLabel 激活您的生产许可证: IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Optional: Configure global settings IronPdf.Installation.TempFolderPath = @"C:\Temp\IronPdf"; IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled; IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Optional: Configure global settings IronPdf.Installation.TempFolderPath = @"C:\Temp\IronPdf"; IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled; IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY" ' Optional: Configure global settings IronPdf.Installation.TempFolderPath = "C:\Temp\IronPdf" IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True $vbLabelText $csharpLabel 30 天免费试用期提供全部功能供测试。 有关配置选项,请参阅许可文档。 如何使用 IronPDF 将 HTML 字符串转换为 PDF? HTML字符串转换的基本方法是什么? 转换 HTML 字符串是最常见的用例。 首先使用RenderHtmlAsPdf进行基本转换: using IronPdf; // Create the renderer var renderer = new ChromePdfRenderer(); // Configure options renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; renderer.RenderingOptions.MarginLeft = 20; renderer.RenderingOptions.MarginRight = 20; // Convert HTML to PDF var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $99.99</p>"); // Save the PDF pdf.SaveAs("invoice.pdf"); // Get bytes for web response byte[] pdfBytes = pdf.BinaryData; using IronPdf; // Create the renderer var renderer = new ChromePdfRenderer(); // Configure options renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; renderer.RenderingOptions.MarginLeft = 20; renderer.RenderingOptions.MarginRight = 20; // Convert HTML to PDF var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $99.99</p>"); // Save the PDF pdf.SaveAs("invoice.pdf"); // Get bytes for web response byte[] pdfBytes = pdf.BinaryData; Imports IronPdf ' Create the renderer Dim renderer As New ChromePdfRenderer() ' Configure options renderer.RenderingOptions.MarginTop = 50 renderer.RenderingOptions.MarginBottom = 50 renderer.RenderingOptions.MarginLeft = 20 renderer.RenderingOptions.MarginRight = 20 ' Convert HTML to PDF Dim pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $99.99</p>") ' Save the PDF pdf.SaveAs("invoice.pdf") ' Get bytes for web response Dim pdfBytes As Byte() = pdf.BinaryData $vbLabelText $csharpLabel 这将生成一个符合无障碍访问标准的、具有正确文本选择的 PDF 文件。 探索自定义页边距和纸张尺寸选项。 输出 PDF 查看器显示一张简单的发票,编号为 12345,总金额为 99.99 美元,缩放比例为 100% 。 如何使用 CSS 设置 PDF 样式? 直接在 HTML 中引入 CSS: var styledHtml = @" <style> @import url('___PROTECTED_URL_73___ body { font-family: 'Roboto', Arial, sans-serif; margin: 40px; line-height: 1.6; } .header { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 10px; } .amount { font-size: 24px; font-weight: bold; color: #059669; } </style> <div class='header'> <h1>Professional Invoice</h1> <p>Invoice Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p> </div> <p class='amount'>$1,234.56</p>"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for fonts var pdf = renderer.RenderHtmlAsPdf(styledHtml); pdf.SaveAs("styled-invoice.pdf"); var styledHtml = @" <style> @import url('___PROTECTED_URL_73___ body { font-family: 'Roboto', Arial, sans-serif; margin: 40px; line-height: 1.6; } .header { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 10px; } .amount { font-size: 24px; font-weight: bold; color: #059669; } </style> <div class='header'> <h1>Professional Invoice</h1> <p>Invoice Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p> </div> <p class='amount'>$1,234.56</p>"; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for fonts var pdf = renderer.RenderHtmlAsPdf(styledHtml); pdf.SaveAs("styled-invoice.pdf"); Imports System Imports IronPdf Dim styledHtml As String = " <style> @import url('___PROTECTED_URL_73___ body { font-family: 'Roboto', Arial, sans-serif; margin: 40px; line-height: 1.6; } .header { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 10px; } .amount { font-size: 24px; font-weight: bold; color: #059669; } </style> <div class='header'> <h1>Professional Invoice</h1> <p>Invoice Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p> </div> <p class='amount'>$1,234.56</p>" Dim renderer As New ChromePdfRenderer() renderer.RenderingOptions.EnableJavaScript = True renderer.RenderingOptions.WaitFor.RenderDelay(500) ' Wait for fonts Dim pdf = renderer.RenderHtmlAsPdf(styledHtml) pdf.SaveAs("styled-invoice.pdf") $vbLabelText $csharpLabel CSS 的渲染效果与 Chrome 完全一致。 探索渲染选项和网页字体。 如何处理图片等外部资源? 外部资源需要基础路径: var htmlWithImage = @" <html> <head> <link rel='stylesheet' href='styles.css' /> </head> <body> <img src='logo.png' alt='Company Logo' /> <h1>Document Title</h1> </body> </html>"; var renderer = new ChromePdfRenderer(); // Set base path for relative URLs var pdf = renderer.RenderHtmlAsPdf(htmlWithImage, @"C:\assets\"); // Alternative: Use web resources var webHtml = "<img src='/images/logo.png' />"; var pdfFromWeb = renderer.RenderHtmlAsPdf(webHtml, new Uri("___PROTECTED_URL_74___")); pdf.SaveAs("document-with-assets.pdf"); var htmlWithImage = @" <html> <head> <link rel='stylesheet' href='styles.css' /> </head> <body> <img src='logo.png' alt='Company Logo' /> <h1>Document Title</h1> </body> </html>"; var renderer = new ChromePdfRenderer(); // Set base path for relative URLs var pdf = renderer.RenderHtmlAsPdf(htmlWithImage, @"C:\assets\"); // Alternative: Use web resources var webHtml = "<img src='/images/logo.png' />"; var pdfFromWeb = renderer.RenderHtmlAsPdf(webHtml, new Uri("___PROTECTED_URL_74___")); pdf.SaveAs("document-with-assets.pdf"); Dim htmlWithImage As String = " <html> <head> <link rel='stylesheet' href='styles.css' /> </head> <body> <img src='logo.png' alt='Company Logo' /> <h1>Document Title</h1> </body> </html>" Dim renderer As New ChromePdfRenderer() ' Set base path for relative URLs Dim pdf = renderer.RenderHtmlAsPdf(htmlWithImage, "C:\assets\") ' Alternative: Use web resources Dim webHtml As String = "<img src='/images/logo.png' />" Dim pdfFromWeb = renderer.RenderHtmlAsPdf(webHtml, New Uri("___PROTECTED_URL_74___")) pdf.SaveAs("document-with-assets.pdf") $vbLabelText $csharpLabel 了解如何管理资产和Azure Blob 存储。 输出 ! PDF 查看器显示 IronPDF for .NET 徽标(白色背景),显示第 1 页(共 1 页),缩放比例为 100%。 如何将 HTML 文件和 URL 转换为 PDF? 如何转换本地HTML文件? 转换本地 HTML 文件使用RenderHtmlFileAsPdf : // Simple conversion var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlFileAsPdf("report-template.html"); pdf.SaveAs("report-output.pdf"); // Advanced conversion var advancedRenderer = new ChromePdfRenderer(); advancedRenderer.RenderingOptions.PaperSize = PdfPaperSize.A4; advancedRenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment; advancedRenderer.RenderingOptions.PrintHtmlBackgrounds = true; var advancedPdf = advancedRenderer.RenderHtmlFileAsPdf("complex-report.html"); advancedPdf.MetaData.Title = "Monthly Sales Report"; advancedPdf.SaveAs("advanced-report.pdf"); // Simple conversion var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlFileAsPdf("report-template.html"); pdf.SaveAs("report-output.pdf"); // Advanced conversion var advancedRenderer = new ChromePdfRenderer(); advancedRenderer.RenderingOptions.PaperSize = PdfPaperSize.A4; advancedRenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment; advancedRenderer.RenderingOptions.PrintHtmlBackgrounds = true; var advancedPdf = advancedRenderer.RenderHtmlFileAsPdf("complex-report.html"); advancedPdf.MetaData.Title = "Monthly Sales Report"; advancedPdf.SaveAs("advanced-report.pdf"); ' Simple conversion Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlFileAsPdf("report-template.html") pdf.SaveAs("report-output.pdf") ' Advanced conversion Dim advancedRenderer = New ChromePdfRenderer() advancedRenderer.RenderingOptions.PaperSize = PdfPaperSize.A4 advancedRenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment advancedRenderer.RenderingOptions.PrintHtmlBackgrounds = True Dim advancedPdf = advancedRenderer.RenderHtmlFileAsPdf("complex-report.html") advancedPdf.MetaData.Title = "Monthly Sales Report" advancedPdf.SaveAs("advanced-report.pdf") $vbLabelText $csharpLabel 该方法在内部处理文件读取和链接资源的处理。 对于 ZIP 文件,请参阅"从存档中获取 HTML" 。 如何转换在线网页? 使用RenderUrlAsPdf渲染网页: // Basic URL conversion var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_75___"); pdf.SaveAs("website-snapshot.pdf"); // Advanced conversion with authentication var secureRenderer = new ChromePdfRenderer(); secureRenderer.LoginCredentials = new ChromeHttpLoginCredentials { Username = "user@example.com", Password = "secure-password" }; secureRenderer.RenderingOptions.WaitFor.NetworkIdle(500); var securePdf = secureRenderer.RenderUrlAsPdf("___PROTECTED_URL_76___"); securePdf.SaveAs("secure-dashboard.pdf"); // Basic URL conversion var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_75___"); pdf.SaveAs("website-snapshot.pdf"); // Advanced conversion with authentication var secureRenderer = new ChromePdfRenderer(); secureRenderer.LoginCredentials = new ChromeHttpLoginCredentials { Username = "user@example.com", Password = "secure-password" }; secureRenderer.RenderingOptions.WaitFor.NetworkIdle(500); var securePdf = secureRenderer.RenderUrlAsPdf("___PROTECTED_URL_76___"); securePdf.SaveAs("secure-dashboard.pdf"); ' Basic URL conversion Dim renderer As New ChromePdfRenderer() Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_75___") pdf.SaveAs("website-snapshot.pdf") ' Advanced conversion with authentication Dim secureRenderer As New ChromePdfRenderer() secureRenderer.LoginCredentials = New ChromeHttpLoginCredentials With { .Username = "user@example.com", .Password = "secure-password" } secureRenderer.RenderingOptions.WaitFor.NetworkIdle(500) Dim securePdf = secureRenderer.RenderUrlAsPdf("___PROTECTED_URL_76___") securePdf.SaveAs("secure-dashboard.pdf") $vbLabelText $csharpLabel IronPDF 会执行 JavaScript 并等待内容加载完毕后再生成 PDF 文件。 了解身份验证和Cookie 。 如何在PDF中处理响应式设计? 配置响应式网站的视口: var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperFit.UseResponsiveCssRendering(1280); renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen; renderer.RenderingOptions.ViewPortWidth = 1920; var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_77___"); pdf.SaveAs("responsive-output.pdf"); var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperFit.UseResponsiveCssRendering(1280); renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen; renderer.RenderingOptions.ViewPortWidth = 1920; var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_77___"); pdf.SaveAs("responsive-output.pdf"); Dim renderer = New ChromePdfRenderer() renderer.RenderingOptions.PaperFit.UseResponsiveCssRendering(1280) renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen renderer.RenderingOptions.ViewPortWidth = 1920 Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_77___") pdf.SaveAs("responsive-output.pdf") $vbLabelText $csharpLabel 请参阅视口文档和响应式 CSS 指南。 IronPDF 提供哪些高级 PDF 功能? 如何添加专业的页眉和页脚? 页眉和页脚可以改善多页文档: var renderer = new ChromePdfRenderer(); // Configure header renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { MaxHeight = 50, HtmlFragment = @" <div style='text-align: center; font-size: 12px;'> Annual Report 2024 - Confidential </div>", BaseUrl = new Uri(@"file:///C:/assets/") }; // Configure footer with page numbers renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { MaxHeight = 30, HtmlFragment = @" <div style='text-align: center; font-size: 10px;'> Page {page} of {total-pages} </div>", DrawDividerLine = true }; renderer.RenderingOptions.MarginTop = 60; renderer.RenderingOptions.MarginBottom = 40; var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>"); pdf.SaveAs("report-with-headers.pdf"); var renderer = new ChromePdfRenderer(); // Configure header renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { MaxHeight = 50, HtmlFragment = @" <div style='text-align: center; font-size: 12px;'> Annual Report 2024 - Confidential </div>", BaseUrl = new Uri(@"file:///C:/assets/") }; // Configure footer with page numbers renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { MaxHeight = 30, HtmlFragment = @" <div style='text-align: center; font-size: 10px;'> Page {page} of {total-pages} </div>", DrawDividerLine = true }; renderer.RenderingOptions.MarginTop = 60; renderer.RenderingOptions.MarginBottom = 40; var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>"); pdf.SaveAs("report-with-headers.pdf"); Dim renderer = New ChromePdfRenderer() ' Configure header renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With { .MaxHeight = 50, .HtmlFragment = " <div style='text-align: center; font-size: 12px;'> Annual Report 2024 - Confidential </div>", .BaseUrl = New Uri("file:///C:/assets/") } ' Configure footer with page numbers renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With { .MaxHeight = 30, .HtmlFragment = " <div style='text-align: center; font-size: 10px;'> Page {page} of {total-pages} </div>", .DrawDividerLine = True } renderer.RenderingOptions.MarginTop = 60 renderer.RenderingOptions.MarginBottom = 40 Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>") pdf.SaveAs("report-with-headers.pdf") $vbLabelText $csharpLabel 特殊占位符(如{page}和{total-pages}会自动替换。 请查看标题教程。 如何在PDF文件中添加水印? 使用水印保护文档: var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>"); // Apply text watermark pdf.ApplyWatermark( "<div style='font-size: 72px; color: red; opacity: 0.3;'>DRAFT</div>", rotation: 45, opacity: 30 ); pdf.SaveAs("watermarked-document.pdf"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>"); // Apply text watermark pdf.ApplyWatermark( "<div style='font-size: 72px; color: red; opacity: 0.3;'>DRAFT</div>", rotation: 45, opacity: 30 ); pdf.SaveAs("watermarked-document.pdf"); Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>") ' Apply text watermark pdf.ApplyWatermark( "<div style='font-size: 72px; color: red; opacity: 0.3;'>DRAFT</div>", rotation:=45, opacity:=30 ) pdf.SaveAs("watermarked-document.pdf") $vbLabelText $csharpLabel 了解水印技术和印章选项。 数字签名需要哪些条件? 添加签名以证明其真实性: var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>"); // Load certificate var cert = X509CertificateLoader.LoadPkcs12FromFile("certificate.pfx", "password"); // Create signature var signature = new PdfSignature(cert) { SigningContact = "John Smith", SigningLocation = "New York, NY", SigningReason = "Contract Approval" }; // Sign the PDF pdf.Sign(signature); pdf.SaveAsRevision("signed-contract.pdf"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>"); // Load certificate var cert = X509CertificateLoader.LoadPkcs12FromFile("certificate.pfx", "password"); // Create signature var signature = new PdfSignature(cert) { SigningContact = "John Smith", SigningLocation = "New York, NY", SigningReason = "Contract Approval" }; // Sign the PDF pdf.Sign(signature); pdf.SaveAsRevision("signed-contract.pdf"); Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>") ' Load certificate Dim cert = X509CertificateLoader.LoadPkcs12FromFile("certificate.pfx", "password") ' Create signature Dim signature = New PdfSignature(cert) With { .SigningContact = "John Smith", .SigningLocation = "New York, NY", .SigningReason = "Contract Approval" } ' Sign the PDF pdf.Sign(signature) pdf.SaveAsRevision("signed-contract.pdf") $vbLabelText $csharpLabel 探索基于证书的签名和HSM 集成。 如何实现PDF安全功能? 保护敏感信息: var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); // Set metadata pdf.MetaData.Author = "Corporate Security"; pdf.MetaData.Title = "Confidential Report"; // Apply encryption pdf.SecuritySettings.UserPassword = "user123"; pdf.SecuritySettings.OwnerPassword = "owner456"; pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SaveAs("secure-document.pdf"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); // Set metadata pdf.MetaData.Author = "Corporate Security"; pdf.MetaData.Title = "Confidential Report"; // Apply encryption pdf.SecuritySettings.UserPassword = "user123"; pdf.SecuritySettings.OwnerPassword = "owner456"; pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SaveAs("secure-document.pdf"); Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf(htmlContent) ' Set metadata pdf.MetaData.Author = "Corporate Security" pdf.MetaData.Title = "Confidential Report" ' Apply encryption pdf.SecuritySettings.UserPassword = "user123" pdf.SecuritySettings.OwnerPassword = "owner456" pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint pdf.SecuritySettings.AllowUserCopyPasteContent = False pdf.SaveAs("secure-document.pdf") $vbLabelText $csharpLabel 审查PDF安全文档和清理措施。 如何在生产中部署 IronPDF? Windows Server部署需要哪些条件? 启动时配置 IronPDF: var builder = WebApplication.CreateBuilder(args); // Configure license IronPdf.License.LicenseKey = builder.Configuration["IronPdf:LicenseKey"]; // Configure for Windows Server IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled; IronPdf.Installation.TempFolderPath = @"D:\IronPdfTemp"; // Configure logging IronPdf.Logging.LoggingMode = IronPdf.Logging.PdfLoggingModes.All; IronPdf.Logging.LogFilePath = @"D:\Logs\IronPdf.log"; var app = builder.Build(); var builder = WebApplication.CreateBuilder(args); // Configure license IronPdf.License.LicenseKey = builder.Configuration["IronPdf:LicenseKey"]; // Configure for Windows Server IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled; IronPdf.Installation.TempFolderPath = @"D:\IronPdfTemp"; // Configure logging IronPdf.Logging.LoggingMode = IronPdf.Logging.PdfLoggingModes.All; IronPdf.Logging.LogFilePath = @"D:\Logs\IronPdf.log"; var app = builder.Build(); Dim builder = WebApplication.CreateBuilder(args) ' Configure license IronPdf.License.LicenseKey = builder.Configuration("IronPdf:LicenseKey") ' Configure for Windows Server IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled IronPdf.Installation.TempFolderPath = "D:\IronPdfTemp" ' Configure logging IronPdf.Logging.LoggingMode = IronPdf.Logging.PdfLoggingModes.All IronPdf.Logging.LogFilePath = "D:\Logs\IronPdf.log" Dim app = builder.Build() $vbLabelText $csharpLabel 请参阅Windows 安装和IIS 部署。 如何在Linux环境下部署? Linux 需要额外的依赖项: FROM mcr.microsoft.com/dotnet/aspnet:8.0 RUN apt-get update && apt-get install -y \ libgdiplus \ libnss3 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ && apt-get clean WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "MyApp.dll"] 请参阅Linux 部署和Docker 集成。 需要进行哪些 Azure 应用服务配置? 配置 Azure: { "IronPdf": { "LicenseKey": "your-license-key", "TempFolderPath": "D:\\home\\IronPdfTemp", "ChromeGpuMode": "Disabled" } } 了解Azure 部署和Azure Functions 。 IronPDF 在 .NET PDF 库环境中的优势体现在哪里? 为什么基于 Chrome 的渲染是一项重大进步? Chrome 引擎具有根本性的优势。 其他网站使用较旧的引擎,而 IronPDF 则使用 Chrome 浏览器所采用的技术。 当 Chrome 添加 CSS 属性或 JavaScript API 时,IronPDF 自然而然地也获得了这些功能。 这提供了比传统解决方案更优越的像素级完美渲染效果。 跨平台支持究竟是如何运作的? IronPDF 使用平台改进型二进制文件,在 Windows、Linux 和 macOS 上提供一致的渲染效果。 无论是在 Windows 上开发还是部署到 Linux 容器,输出结果都相同。 了解平台注意事项和引擎选项。 IronPDF有哪些独特的高级功能? 除了基本转换功能外,IronPDF 还支持: 页眉和页脚 可填写表格 水印和背景 数字签名和加密 *合并和拆分操作 JavaScript 执行 PDF/A 合规性 *压缩 接下来该如何开始? IronPDF 将 HTML 到 PDF 的转换简化为简单易用的实现方式。 其 Chrome 引擎确保了准确性,而 API 设计则使集成变得简单。 从基本转换到高级功能,IronPDF 可满足各种 PDF 需求。 入门需要三个步骤:安装NuGet 包、编写您的第一段代码,然后充满信心地部署。 免费试用期为 30 天,提供完整的功能供评估。 IronPDF 许可页面显示了四个永久许可级别(Lite、Plus、Professional 和 Unlimited),并针对不同团队规模提供了定价和功能。 浏览代码示例、教程和API 文档。 IronPDF 的灵活许可模式可满足从个人开发者到企业团队的各种需求。 请查看更新日志以获取最新信息。 常见问题解答 IronPDF 有什么用途? IronPDF 用于在 .NET 应用程序中将 HTML 转换为 PDF。它支持现代 CSS 和 JavaScript,并能生成高质量的 PDF 文档。 IronPDF 如何处理复杂的 HTML 布局? IronPDF 使用基于 Chrome 的渲染引擎来精确处理复杂的 HTML 布局,确保 PDF 输出与您在浏览器中看到的内容一致。 IronPDF 能否在 PDF 转换过程中执行 JavaScript? 是的,IronPDF 可以执行 JavaScript,这对于在 PDF 输出中准确渲染动态内容至关重要。 IronPDF 在 .NET 应用程序中容易实现吗? IronPDF 的设计宗旨是易于实现和部署,使使用 .NET 的开发人员能够轻松上手。 IronPDF 可以将哪些类型的 HTML 源转换为 PDF? IronPDF 可以将 HTML 文件、HTML 字符串和整个网页转换为 PDF 格式。 IronPDF能否在PDF中保持原始HTML的质量? 是的,IronPDF 可以生成高质量的 PDF 文档,其保真度与原始 HTML 内容相同。 IronPDF 与其他 PDF 转换器有何不同? IronPDF 采用基于 Chrome 的渲染引擎,提供无缝的转换体验,确保与现代 Web 标准兼容。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新2026年1月22日 如何使用 IronPDF 在 .NET 中创建 PDF 文档:完整指南 发现为开发人员创建PDF文件的有效方法。提升您的编码技能并简化您的项目。立即阅读文章! 阅读更多 已更新2026年1月21日 如何在 VB.NET 中合并 PDF 文件:完整教程 使用IronPDF合并PDF VB NET。学习使用简单的VB.NET代码将多个PDF文件合并为一个文档。包括逐步示例。 阅读更多 已更新2026年1月21日 C# PDFWriter 教程:在 .NET 中创建 PDF 文档 使用这份逐步指南了解如何高效地使用C# PDFWriter创建PDF。阅读文章提升您的技能! 阅读更多 如何使用 IronPDF 制作 Xamarin PDF 生成器使用 IronPDF 的简单 API 在 C#...
已更新2026年1月21日 如何在 VB.NET 中合并 PDF 文件:完整教程 使用IronPDF合并PDF VB NET。学习使用简单的VB.NET代码将多个PDF文件合并为一个文档。包括逐步示例。 阅读更多