迁移指南 如何用 C# 从 Telerik Document Processing 迁移到 IronPDF Curtis Chau 已发布:2026年2月1日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 作为 DevCraft 套件的一部分,Telerik Document Processing 为 .NET 生态系统提供服务,在处理 Word、Excel 和 PowerPoint 的同时,还为开发人员提供 PDF 生成功能。 然而,随着现代 Web 标准的发展和项目对全面 CSS3、Flexbox 和 Bootstrap 支持的需求,许多开发团队发现 Telerik 的 HTML 到 PDF 渲染架构存在根本性的限制。 本指南提供了从Telerik 文档处理到IronPDF的完整迁移路径,包括分步说明、代码比较以及直接取自真实迁移场景的实用示例。 为什么要从 Telerik 文档处理迁移 从Telerik 文档处理迁移的决定通常源于在处理现代网络内容时出现的技术限制。 了解这些限制有助于证明迁移工作的合理性,并为IronPDF解决的问题设定期望值。 关键技术限制 Telerik 文档处理在处理现代 HTML 和 CSS 时存在一些基本问题: 问题 影响 IronPdf 解决方案 CSS 解析限制 现代 CSS 框架(如 Bootstrap)失败 完全支持 Chromium CSS 分段转换 HTML 结构扁平化,布局中断 直接 HTML 渲染 流程文档模型 强制中间转换 本地 HTML 到 PDF 外部 CSS 问题 忽略复杂的选择器 完全支持 CSS 文件 内存问题 大型文档出现 OutOfMemoryException 异常 高效流 核心问题:HTML 无法正确渲染 在生成 PDF 之前,Telerik Document Processing 会将 HTML 转换为中间的 "流程文档 "模型。 这一架构决策会产生一系列问题: 1.扁平化 HTML 结构 - <div> 元素变为段落 2.忽略现代 CSS - Flexbox 和网格布局完全失效 3.Breaks Bootstrap - 列系统不以列的形式呈现 4.丢失格式 - 忽略复杂的 CSS 选择器 考虑使用标准 CSS 布局的现代 HTML: <div class="container"> <div class="row"> <div class="col-md-6">Column 1</div> <div class="col-md-6">Column 2</div> </div> </div> <div style="display: flex; gap: 20px;"> <div style="flex: 1;">Flex Item 1</div> <div style="flex: 1;">Flex Item 2</div> </div> <div style="display: grid; grid-template-columns: repeat(3, 1fr);"> <div>Grid Item 1</div> <div>Grid Item 2</div> <div>Grid Item 3</div> </div> <div class="container"> <div class="row"> <div class="col-md-6">Column 1</div> <div class="col-md-6">Column 2</div> </div> </div> <div style="display: flex; gap: 20px;"> <div style="flex: 1;">Flex Item 1</div> <div style="flex: 1;">Flex Item 2</div> </div> <div style="display: grid; grid-template-columns: repeat(3, 1fr);"> <div>Grid Item 1</div> <div>Grid Item 2</div> <div>Grid Item 3</div> </div> HTML 在 Telerik 文档处理中,所有这些布局都以连续段落的形式呈现。双列 Bootstrap 布局变成了两行文本。 Flexbox 项目垂直堆叠。 CSS 网格项目一个接一个地出现。 在 Telerik 文档处理中失效的 CSS 功能 开发人员记录了大量 CSS 兼容性问题: /* ❌ These CSS features DON'T WORK inTelerik 文档处理*/ /* Flexbox - 不支持 */ .container { display: flex; } .item { flex: 1; } /* CSS Grid - 不支持 */ .grid { display: grid; grid-template-columns: repeat(3, 1fr); } /* Bootstrap columns - Converted to paragraphs */ .col-md-6 { /* Ignored, becomes linear text */ } /* CSS Variables - 不支持 */ :root { --primary: #007bff; } .btn { color: var(--primary); } /* Complex selectors - Often ignored */ .container > .row:first-child { } .item:hover { } .content::before { } /* Modern units - Limited support */ .box { width: calc(100% - 20px); } .text { font-size: 1.2rem; } 大型文档的性能问题 除了 CSS 限制之外,Telerik 文档处理还记录了处理大文件时出现的 OutOfMemoryException 错误。 从事大量文档生成工作的开发团队遇到了稳定性问题,而其他库可以更高效地处理这些问题。 IronPDF与 Telerik 文档处理:功能比较 了解功能差异有助于技术决策者评估迁移投资: 特征 Telerik 文档处理 IronPDF HTML 渲染 流程文档转换 直接 Chromium 渲染 CSS3 支持。 内容有限,许多功能无法实现 完整的 CSS3 Flexbox 不支持 全面支持 CSS 网格 不支持 全面支持 脚本 破损(div 扁平化) 完全支持 Bootstrap 5 外部 CSS。 部分翻译 全面支持 JavaScript语言 不支持 完全支持 ES2024 大型文档 内存问题 高效流 API 复杂性 复杂(提供商、模型) 简单(一类) 许可模式 商业,DevCraft 的一部分 简单的独立许可 快速启动迁移:5 分钟完成您的第一个 PDF. 从Telerik 文档处理迁移到IronPDF的工作可以立即开始。 以下是使用IronPDF生成第一个 PDF 的最快途径。 步骤 1:更新 NuGet 软件包 删除所有 Telerik 文档处理包: # Remove Telerik packages dotnet remove package Telerik.Documents.Core dotnet remove package Telerik.Documents.Flow dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf dotnet remove package Telerik.Documents.Fixed # Remove Telerik packages dotnet remove package Telerik.Documents.Core dotnet remove package Telerik.Documents.Flow dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf dotnet remove package Telerik.Documents.Fixed SHELL 安装 IronPDF: # Install IronPDF dotnet add package IronPdf # Install IronPDF dotnet add package IronPdf SHELL 步骤 2:更新 Using 语句 用 IronPdf 命名空间替换 Telerik 命名空间: // Before (Telerik Document Processing) using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; using Telerik.Documents.Primitives; // After (IronPDF) using IronPdf; // Before (Telerik Document Processing) using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; using Telerik.Documents.Primitives; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel 步骤 3:添加许可证密钥 在应用程序启动时初始化许可证: // Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel 步骤 4:更新您的 PDF 生成代码 从Telerik 文档处理到IronPDF的转变极大地简化了您的代码库。 之前(Telerik 文档处理): using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; HtmlFormatProvider htmlProvider = new HtmlFormatProvider(); RadFlowDocument document = htmlProvider.Import(htmlContent); PdfFormatProvider pdfProvider = new PdfFormatProvider(); byte[] pdfBytes = pdfProvider.Export(document); File.WriteAllBytes("output.pdf", pdfBytes); using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; HtmlFormatProvider htmlProvider = new HtmlFormatProvider(); RadFlowDocument document = htmlProvider.Import(htmlContent); PdfFormatProvider pdfProvider = new PdfFormatProvider(); byte[] pdfBytes = pdfProvider.Export(document); File.WriteAllBytes("output.pdf", pdfBytes); $vbLabelText $csharpLabel After (IronPDF): using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); $vbLabelText $csharpLabel 差异一眼就能看出:3 行IronPDF代码取代了 15 行以上的 Telerik 文档处理代码。 更重要的是,IronPDF 版本将正确呈现 Telerik 的 Flow Document 模型无法处理的现代 CSS。 代码迁移示例 将HTML转换为PDF 这是 PDF 生成最常见的使用案例。Telerik 文档处理和IronPDF在架构上的差异在这次比较中变得一目了然。 Telerik 文档处理方法: // NuGet: Install-Package Telerik.Documents.Flow // NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; using System.IO; string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; HtmlFormatProvider htmlProvider = new HtmlFormatProvider(); RadFlowDocument document = htmlProvider.Import(html); PdfFormatProvider pdfProvider = new PdfFormatProvider(); using (FileStream output = File.OpenWrite("output.pdf")) { pdfProvider.Export(document, output); } // NuGet: Install-Package Telerik.Documents.Flow // NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; using System.IO; string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; HtmlFormatProvider htmlProvider = new HtmlFormatProvider(); RadFlowDocument document = htmlProvider.Import(html); PdfFormatProvider pdfProvider = new PdfFormatProvider(); using (FileStream output = File.OpenWrite("output.pdf")) { pdfProvider.Export(document, output); } $vbLabelText $csharpLabel IronPdf 方法: // NuGet: Install-Package IronPdf using IronPdf; string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); // NuGet: Install-Package IronPdf using IronPdf; string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); $vbLabelText $csharpLabel Telerik 版本需要创建 HtmlFormatProvider, 导入 RadFlowDocument, 创建 PdfFormatProvider, 并手动管理文件流。IronPDF的ChromePdfRenderer只需调用一个方法即可处理整个过程。 有关更高级的 HTML 转 PDF 场景,请参阅 HTML 转 PDF 指南。 将 URL 转换为 PDF 将网页截取为 PDF 显示了两个库之间的另一个显著差异。 Telerik 文档处理方法: // NuGet: Install-Package Telerik.Documents.Flow // NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; using System.IO; using System.Net.Http; using System.Threading.Tasks; string url = "https://example.com"; using HttpClient client = new HttpClient(); string html = await client.GetStringAsync(url); HtmlFormatProvider htmlProvider = new HtmlFormatProvider(); RadFlowDocument document = htmlProvider.Import(html); PdfFormatProvider pdfProvider = new PdfFormatProvider(); using (FileStream output = File.OpenWrite("webpage.pdf")) { pdfProvider.Export(document, output); } // NuGet: Install-Package Telerik.Documents.Flow // NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf using Telerik.Windows.Documents.Flow.FormatProviders.Html; using Telerik.Windows.Documents.Flow.FormatProviders.Pdf; using Telerik.Windows.Documents.Flow.Model; using System.IO; using System.Net.Http; using System.Threading.Tasks; string url = "https://example.com"; using HttpClient client = new HttpClient(); string html = await client.GetStringAsync(url); HtmlFormatProvider htmlProvider = new HtmlFormatProvider(); RadFlowDocument document = htmlProvider.Import(html); PdfFormatProvider pdfProvider = new PdfFormatProvider(); using (FileStream output = File.OpenWrite("webpage.pdf")) { pdfProvider.Export(document, output); } $vbLabelText $csharpLabel IronPdf 方法: // NuGet: Install-Package IronPdf using IronPdf; string url = "https://example.com"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf"); // NuGet: Install-Package IronPdf using IronPdf; string url = "https://example.com"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf"); $vbLabelText $csharpLabel Telerik Document Processing 没有本机 URL 转 PDF 功能。 您必须使用 HttpClient 手动获取 HTML 内容,在此过程中会丢失外部 CSS、JavaScript 执行和动态内容。IronPDF的 RenderUrlAsPdf 方法可捕获完整的渲染页面,与浏览器中显示的页面完全一致。 请浏览 URL to PDF 文档,了解包括身份验证和自定义标头在内的其他选项。 合并多个 PDF 文件 PDF 合并演示了这些 .NET PDF 库之间的语言差异。 Telerik 文档处理方法: // NuGet: Install-Package Telerik.Documents.Fixed using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf; using Telerik.Windows.Documents.Fixed.Model; using System.IO; PdfFormatProvider provider = new PdfFormatProvider(); RadFixedDocument document1; using (FileStream input = File.OpenRead("document1.pdf")) { document1 = provider.Import(input); } RadFixedDocument document2; using (FileStream input = File.OpenRead("document2.pdf")) { document2 = provider.Import(input); } RadFixedDocument mergedDocument = new RadFixedDocument(); foreach (var page in document1.Pages) { mergedDocument.Pages.Add(page); } foreach (var page in document2.Pages) { mergedDocument.Pages.Add(page); } using (FileStream output = File.OpenWrite("merged.pdf")) { provider.Export(mergedDocument, output); } // NuGet: Install-Package Telerik.Documents.Fixed using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf; using Telerik.Windows.Documents.Fixed.Model; using System.IO; PdfFormatProvider provider = new PdfFormatProvider(); RadFixedDocument document1; using (FileStream input = File.OpenRead("document1.pdf")) { document1 = provider.Import(input); } RadFixedDocument document2; using (FileStream input = File.OpenRead("document2.pdf")) { document2 = provider.Import(input); } RadFixedDocument mergedDocument = new RadFixedDocument(); foreach (var page in document1.Pages) { mergedDocument.Pages.Add(page); } foreach (var page in document2.Pages) { mergedDocument.Pages.Add(page); } using (FileStream output = File.OpenWrite("merged.pdf")) { provider.Export(mergedDocument, output); } $vbLabelText $csharpLabel IronPdf 方法: // NuGet: Install-Package IronPdf using IronPdf; var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); // NuGet: Install-Package IronPdf using IronPdf; var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); $vbLabelText $csharpLabel Telerik 版本需要分别导入每个文档,手动迭代页面,将它们添加到新文档中,并管理多个文件流。IronPDF的PdfDocument.Merge()方法只需一次调用即可处理所有内容。 有关包括选择性页面提取在内的高级合并方案,请参阅 合并和拆分 PDF 指南。 Telerik 文档处理 API 到IronPDF的映射 本参考表通过显示直接的 API 对应关系来加快迁移速度: Telerik 文档处理 IronPDF 备注 HtmlFormatProvider ChromePdfRenderer 创建用于生成 PDF 的呈现器 RadFlow 文档 不需要 IronPdf 可直接渲染 HTML PdfFormatProvider pdf.SaveAs() 直接保存,无需提供商 RadFlowDocumentEditor HTML 操作 渲染前编辑 HTML 部分 HTML <section> 使用语义 HTML 段落 HTML <p> 标准 HTML 元素 PDFExportSettings 渲染选项 配置输出设置 RadFixedDocument PDF 文档 与现有 PDF 一起使用 手动页面迭代 PdfDocument.Merge() 内置合并方法 处理页眉和页脚 Telerik 文档处理对页眉和页脚使用编程模型。 IronPdf 提供基于 HTML 的标题和动态占位符。 Telerik文档处理: section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text"); section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text"); section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text"); section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text"); $vbLabelText $csharpLabel IronPDF: renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Header Text</div>", MaxHeight = 25 }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Footer Text</div>", MaxHeight = 25 }; renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Header Text</div>", MaxHeight = 25 }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Footer Text</div>", MaxHeight = 25 }; $vbLabelText $csharpLabel IronPdf 基于 HTML 的方法允许在页眉和页脚中使用完整的 CSS 样式,Plus 还可以为页码和日期提供动态占位符。 在 页眉和页脚文档中了解更多信息。 单位转换:DIP 转换为毫米 Telerik 文档处理使用与设备无关的像素 (DIP) 进行测量。 IronPdf 使用毫米。 这需要在迁移过程中进行转换: // Telerik uses DIPs (device-independent pixels) //IronPDFuses millimeters // 1 inch = 25.4mm renderer.RenderingOptions.MarginTop = 25.4; // 1 inch renderer.RenderingOptions.MarginBottom = 25.4; // Or use the helper method for paper size renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11); // Telerik uses DIPs (device-independent pixels) //IronPDFuses millimeters // 1 inch = 25.4mm renderer.RenderingOptions.MarginTop = 25.4; // 1 inch renderer.RenderingOptions.MarginBottom = 25.4; // Or use the helper method for paper size renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11); $vbLabelText $csharpLabel Telerik 文档处理迁移核对表 迁移前任务 审核您的代码库,确定所有 Telerik 文档处理的使用情况: grep -r "using Telerik.Windows.Documents" --include="*.cs" . grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" . grep -r "using Telerik.Windows.Documents" --include="*.cs" . grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" . SHELL 记录现有的实现,包括使用的格式提供商、页眉/页脚配置、自定义页面设置以及对 Flow Document 模型的任何修改。 迁移过程中 1.删除 Telerik NuGet 软件包 2.安装 IronPdf NuGet 软件包 3.更新使用语句从 Telerik.Windows.Documents 到 IronPdf 4.在启动时添加许可证密钥初始化 5.将HtmlFormatProvider替换为ChromePdfRenderer 6.删除RadFlow 文档中间步骤 7.用直接调用SaveAs()替换PdfFormatProvider导出 8.更新页眉/页脚以使用HtmlHeaderFooter 9.将页面设置转换为RenderingOptions` 10.将边距单位从 DIP 更新为毫米 迁移后验证 迁移后,验证这些改进: CSS 的渲染效果应得到明显改善 Bootstrap 布局应能正确呈现(在 Telerik 中无法呈现) Flexbox 和网格布局应能正常工作(在 Telerik 中不能正常工作) JavaScript 执行功能应适用于动态内容 大型文档生成应在无内存异常的情况下完成 迁移到IronPDF的主要优势 从Telerik 文档处理迁移到IronPDF可带来立竿见影的优势: 现代 Chromium 渲染引擎:IronPDF使用与 Google Chrome 相同的渲染引擎,确保 PDF 文件能够像在现代浏览器中一样准确地渲染。 这消除了 Telerik Flow 文档模型固有的 CSS 兼容性问题。 完全支持 CSS3 和 JavaScript: Flexbox、Grid、Bootstrap 5、CSS 变量和现代 JavaScript 均可正常工作。 随着 .NET 10 和 C# 14 的采用率在 2026 年之前不断提高,IronPDF 的现代渲染确保了与当代网络标准的兼容性。 更简单的 API:更少的代码行数、没有中间文档模型以及直观的方法名称,可减少开发时间和维护负担。 独立许可:IronPDF提供简单的许可方式,无需购买完整的套件,为只需要 PDF 功能的团队提供了一种经济高效的解决方案。 积极开发:定期更新确保与当前和未来的 .NET 版本、安全补丁和功能增强兼容。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布2026年2月1日 如何用 C# 从 ZetPDF 迁移到 IronPDF 通过这本完整的 C# 指南,掌握从 ZetPDF 到 IronPDF 的迁移。从基于坐标的库转换到现代的 HTML 到 PDF 解决方案。包括 HTML 转换、合并 PDF 和移除 PDFSharp 依赖性的代码示例。 阅读更多 已发布2026年2月1日 如何用 C# 从 Scryber.Core 迁移到 IronPDF 通过这本完整的 C# 指南,掌握从 Scryber.Core 迁移到 IronPDF 的方法。从自定义 XML/HTML 解析转换到现代 Chromium 渲染器。包括 HTML 转换、URL 呈现和替换专有绑定的代码示例。 阅读更多 已发布2026年2月1日 如何用 C# 从 XFINIUM.PDF 迁移到 IronPDF 通过这本完整的 C# 指南,掌握从 XFINIUM.PDF 到 IronPDF 的迁移。从基于坐标的手动定位切换到声明式 HTML/CSS 渲染。包括替换图形基元和自动布局的代码示例。 阅读更多 如何用 C# 从 Telerik Reporting 迁移到 IronPDF如何用 C# 从 TallComponents 迁...
已发布2026年2月1日 如何用 C# 从 ZetPDF 迁移到 IronPDF 通过这本完整的 C# 指南,掌握从 ZetPDF 到 IronPDF 的迁移。从基于坐标的库转换到现代的 HTML 到 PDF 解决方案。包括 HTML 转换、合并 PDF 和移除 PDFSharp 依赖性的代码示例。 阅读更多
已发布2026年2月1日 如何用 C# 从 Scryber.Core 迁移到 IronPDF 通过这本完整的 C# 指南,掌握从 Scryber.Core 迁移到 IronPDF 的方法。从自定义 XML/HTML 解析转换到现代 Chromium 渲染器。包括 HTML 转换、URL 呈现和替换专有绑定的代码示例。 阅读更多
已发布2026年2月1日 如何用 C# 从 XFINIUM.PDF 迁移到 IronPDF 通过这本完整的 C# 指南,掌握从 XFINIUM.PDF 到 IronPDF 的迁移。从基于坐标的手动定位切换到声明式 HTML/CSS 渲染。包括替换图形基元和自动布局的代码示例。 阅读更多