如何在 C# 中从 PDFPrinting.NET 迁移到 IronPDF for .NET
从 PDFPrinting.NET 迁移到 IronPDF:完整的 C# 迁移指南
从 PDFPrinting.NET 迁移到IronPDF可将您的 PDF 功能从仅用于打印的库扩展到可处理整个 PDF 生命周期(包括创建、操作、提取、安全和打印)的综合解决方案。 本指南提供了完整的分步迁移路径,在保留现有打印工作流程的同时,增加了 PDF 生成、HTML 转换和跨平台支持功能。
为什么要从 PDFPrinting.NET 迁移到 IronPDF?
了解 PDFPrinting.NET.
PDFPrinting.NET 是一种专业的解决方案,在无声 PDF 打印方面具有无与伦比的简便性和有效性。 PDFPrinting.NET 主要在 Windows 生态系统中运行,是专门为需要将 PDF 打印功能集成到其应用程序中的开发人员设计的商业库。 作为一款专用工具,PDFPrinting.NET 只专注于无声、稳健地打印 PDF,它在简化通常复杂的任务方面找到了自己的定位,即无需用户干预即可通过编程打印文档。
PDFPrinting.NET 的最大优势之一是能够静音打印文档。 它绕过了通常的打印对话窗口,促进了完全自动化的工作流程,这对于要求尽量减少用户交互的应用程序来说至关重要。
仅限打印的限制
PDFPrinting.NET 的一个明显局限是它只涉及 PDF 处理的打印方面。 它不能创建、修改或操作 PDF 文档,这限制了它对需要完整 PDF 文档生命周期解决方案的开发人员的实用性:
1.仅限打印:不能创建、编辑或操作 PDF 文档。
2.仅限 Windows:与 Windows 打印基础架构绑定,不支持 Linux/macOS。 对 Windows 打印基础架构的依赖限制了它在 Windows 环境中的适用性,从而限制了跨平台的可用性。
3.无 PDF 生成:不能将 HTML、URL 或数据转换为 PDF。
4.无文档处理:不能合并、分割、加水印或保护 PDF。
5.无文本提取:不能从 PDF 中读取或提取内容。
6.无表单处理:无法填充或压平 PDF 表单。
PDFPrinting.NET 与IronPDF的比较
| 特征 | PDFPrinting.NET | IronPDF |
|---|---|---|
| 主要功能 | 静音 PDF 打印 | 全周期处理(创建、编辑、打印) |
| 平台支持 | 仅限 Windows | 跨平台 |
| PDF 创建/操纵功能 | 否 | 是 |
| HTML-PDF 转换 | 否 | 是 |
| 自动化工作流程的适用性 | 高的 | 高的 |
| 附加依赖项 | 依赖于 Windows 打印机 | 用于渲染的内部浏览器引擎 |
| 静音打印 | 是 | 是 |
| 文本提取 | 不支持 | 全面支持 |
| 许可 | 商业翻译 | 商业翻译 |
IronPDF 通过处理 PDF 的整个生命周期,提供了一个更全面的解决方案。 该工具便于创建、编辑、转换和打印 PDF 文档,通过统一的 API 为开发人员提供全套功能。 与 PDFPrinting.NET 不同,IronPDF 可在不同平台上部署,因此是在不同环境中运行的应用程序的多功能选择。
对于计划在 2025 年和 2026 年之前采用 .NET 10 和 C# 14 的团队,IronPDF 提供了一个完整的 PDF 解决方案,可在 Windows、Linux 和 macOS 环境中运行。
开始之前
前提条件
1..NET环境:.NET Framework 4.6.2+ 或 .NET Core 3.1+ / .NET 5/6/7/8/9+ 2.NuGet 访问:安装 NuGet 软件包的能力 3.IronPDF 许可证:从 ironpdf.com 获取许可证密钥
NuGet 软件包变更
# Remove PDFPrinting.NET
dotnet remove package PDFPrinting.NET
# Install IronPDF
dotnet add package IronPdf# Remove PDFPrinting.NET
dotnet remove package PDFPrinting.NET
# Install IronPDF
dotnet add package IronPdf许可配置
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IRON VB CONVERTER ERROR developers@ironsoftware.com识别 PDFPrinting.NET 的用法
# Find PDFPrinting.NET usage
grep -r "PDFPrinting\|PDFPrinter" --include="*.cs" .
# Find print-related code
grep -r "\.Print(\|PrinterName\|GetPrintDocument" --include="*.cs" .# Find PDFPrinting.NET usage
grep -r "PDFPrinting\|PDFPrinter" --include="*.cs" .
# Find print-related code
grep -r "\.Print(\|PrinterName\|GetPrintDocument" --include="*.cs" .完整的 API 参考
命名空间变更
// Before: PDFPrinting.NET
using PDFPrinting.NET;
using PDFPrintingNET;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Printing;// Before: PDFPrinting.NET
using PDFPrinting.NET;
using PDFPrintingNET;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Printing;IRON VB CONVERTER ERROR developers@ironsoftware.com核心类映射
| PDFPrinting.NET | IronPDF | 备注 |
|---|---|---|
| <代码>PDFPrinter</代码 | <代码>PDF 文档</代码 | PDF 核心对象 |
| <代码>HtmlToPdfConverter</代码 | <代码>ChromePdfRenderer</代码 | 生成 PDF |
| <代码>WebPageToPdfConverter</代码 | <代码>ChromePdfRenderer</代码 | URL 转换 |
| 打印设置属性 | <代码>打印设置</代码 | 打印配置 |
打印方法映射
| PDFPrinting.NET | IronPDF | 备注 |
|---|---|---|
| <代码>printer.Print(filePath)</代码 | <代码>pdf.Print()</代码 | 打印到默认打印机 |
| <代码>printer.Print(path, printerName)</ 代码 | <代码>pdf.Print(打印机名称)</代码 | 打印到特定打印机 |
| <代码>printer.PrinterName = "..."</ 代码 | <代码>pdf.Print("...")</代码 | 指定打印机 |
| <代码>printer.GetPrintDocument(path)</代码 | <代码>pdf.GetPrintDocument()</代码 | 获取 PrintDocument |
| <代码>printer.Copies = n</代码 | <代码>printSettings.NumberOfCopies = n</代码 | 稿件数量 |
| <代码>printer.Duplex = true</代码 | <代码>printSettings.DuplexMode = Duplex.Vertical</ 代码 | 双面打印 |
| <代码>printer.CollatePages = true</代码 | <代码>printSettings.Collate = true</代码 | 整理 |
PDFPrinting.NET 中不提供的新功能
| IronPdf 特点 | 说明 |
|---|---|
| <代码>renderer.RenderHtmlAsPdf(html)</代码 | HTML 到 PDF 的转换 |
| <代码>renderer.RenderUrlAsPdf(url)</代码 | URL 到 PDF 的转换 |
| <代码>PdfDocument.Merge(pdfs)</代码 | 合并多个 PDF |
| <代码>pdf.ApplyWatermark(html)</代码 | 添加水印 |
| <代码>pdf.SecuritySettings.UserPassword</代码 | 密码保护 |
| <代码>pdf.ExtractAllText()</代码 | 文本提取 |
代码迁移示例
示例 1:HTML 到 PDF 的转换
之前(PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
string html = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(html, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
string html = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(html, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comAfter (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPDFPrinting.NET 使用<代码>HtmlToPdfConverter</代码和 ConvertHtmlToPdf(html, outputPath) 将渲染和保存合并在一次调用中。IronPDF使用<代码>ChromePdfRenderer</代码和 RenderHtmlAsPdf() 返回一个<代码>PDF 文档</代码对象,然后您可以使用 SaveAs() 保存该对象。 这种分离提供了更大的灵活性--您可以在保存之前对 PDF 进行处理(添加水印、与其他文档合并、添加安全性)。
IronPDF 提供 HTML 到 PDF 转换等功能,允许开发人员将网页内容呈现为 PDF--充分利用现代网络技术创建文档。 通过在内部利用浏览器引擎,IronPDF 可以准确地将网页文档的样式和渲染复制到 PDF 中。 请参阅 HTML 转 PDF 文档,了解全面的示例。
示例 2:URL 到 PDF 的转换
之前(PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new WebPageToPdfConverter();
string url = "https://www.example.com";
converter.Convert(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new WebPageToPdfConverter();
string url = "https://www.example.com";
converter.Convert(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comAfter (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPDFPrinting.NET 使用<代码>WebPageToPdfConverter</代码和 Convert(url, outputPath) 。IronPDF使用与 RenderUrlAsPdf() 方法相同的<代码>ChromePdfRenderer</代码类。 请注意,IronPDF 对 HTML 字符串和 URL 均使用一个渲染器类,当您需要这两种功能时,可以简化您的代码。 在我们的教程中了解更多信息。
示例 3:页眉和页脚
之前(PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.HeaderText = "Company Report";
converter.FooterText = "Page {page} of {total}";
string html = "<html><body><h1>Document Content</h1></body></html>";
converter.ConvertHtmlToPdf(html, "report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.HeaderText = "Company Report";
converter.FooterText = "Page {page} of {total}";
string html = "<html><body><h1>Document Content</h1></body></html>";
converter.ConvertHtmlToPdf(html, "report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comAfter (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
string html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
string html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPDFPrinting.NET 使用简单的字符串属性 HeaderText 和 FooterText 以及占位符 {page} 和 {total} 。IronPDF使用带有 HtmlFragment 属性的 HtmlHeaderFooter 对象,该属性可接受完整的 HTML,允许使用 CSS 进行丰富的样式设计。 请注意占位符语法的变化:PDFPrinting.NET 使用 {total} 而IronPDFfor .NET 使用 {total-pages}.
关键迁移说明
替换语法
不同库的页眉/页脚占位符有所不同:
// PDFPrinting.NET placeholders
"Page {page} of {total}"
//IronPDFplaceholders
"Page {page} of {total-pages}"// PDFPrinting.NET placeholders
"Page {page} of {total}"
//IronPDFplaceholders
"Page {page} of {total-pages}"IRON VB CONVERTER ERROR developers@ironsoftware.com加载然后打印模式
PDFPrinting.NET 可直接传递文件路径; IronPdf 优先加载:
// PDFPrinting.NET: Direct path to Print()
printer.Print("document.pdf");
// IronPDF: Load first, then operate
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();// PDFPrinting.NET: Direct path to Print()
printer.Print("document.pdf");
// IronPDF: Load first, then operate
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();IRON VB CONVERTER ERROR developers@ironsoftware.com打印设置迁移
PDFPrinting.NET 使用属性; IronPdf 使用一个设置对象:
// PDFPrinting.NET: Properties on printer object
printer.Copies = 2;
printer.Duplex = true;
// IronPDF: Settings object
var settings = new PrintSettings
{
NumberOfCopies = 2,
DuplexMode = System.Drawing.Printing.Duplex.Vertical
};
pdf.Print(settings);// PDFPrinting.NET: Properties on printer object
printer.Copies = 2;
printer.Duplex = true;
// IronPDF: Settings object
var settings = new PrintSettings
{
NumberOfCopies = 2,
DuplexMode = System.Drawing.Printing.Duplex.Vertical
};
pdf.Print(settings);IRON VB CONVERTER ERROR developers@ironsoftware.comHTML 标题与文本标题
// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF:完整的 HTMLwith styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF:完整的 HTMLwith styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};IRON VB CONVERTER ERROR developers@ironsoftware.com迁移后的新功能
迁移到IronPDF后,您将获得 PDFPrinting.NET 无法提供的功能:
PDF 合并
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com水印
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");IRON VB CONVERTER ERROR developers@ironsoftware.com密码保护
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";IRON VB CONVERTER ERROR developers@ironsoftware.com文本提取
string text = pdf.ExtractAllText();string text = pdf.ExtractAllText();Dim text As String = pdf.ExtractAllText()生成然后打印工作流程
使用 IronPDF,您可以在一个工作流程中生成 PDF 并打印:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>");
pdf.Print("Invoice Printer");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>");
pdf.Print("Invoice Printer");IRON VB CONVERTER ERROR developers@ironsoftware.com跨平台打印
PDFPrinting.NET 仅适用于 Windows。 IronPdf 可跨平台运行:
Windows
pdf.Print("HP LaserJet");pdf.Print("HP LaserJet");IRON VB CONVERTER ERROR developers@ironsoftware.comLinux
// Requires CUPS (Common Unix Printing System)
// Install: apt-get install cups
pdf.Print("HP_LaserJet"); // CUPS uses underscores instead of spaces// Requires CUPS (Common Unix Printing System)
// Install: apt-get install cups
pdf.Print("HP_LaserJet"); // CUPS uses underscores instead of spacesIRON VB CONVERTER ERROR developers@ironsoftware.commacOS。
pdf.Print("HP LaserJet");pdf.Print("HP LaserJet");IRON VB CONVERTER ERROR developers@ironsoftware.com功能对比摘要
| 特征 | PDFPrinting.NET | IronPDF |
|---|---|---|
| 无声印刷 | ✓ | ✓ |
| 打印设置 | ✓ | ✓ |
| HTML 至 PDF | ✗ | ✓ |
| URL 至 PDF | ✗ | ✓ |
| 页眉/页脚 | 基本的 | 完整的 HTML |
| 合并 PDF | ✗ | ✓ |
| 拆分 PDF | ✗ | ✓ |
| 水印 | ✗ | ✓ |
| 文本提取 | ✗ | ✓ |
| 密码保护 | ✗ | ✓ |
| 跨平台 | ✗ | ✓ |
迁移清单
迁移前
- [ ] 清点代码库中 PDFPrinting.NET 的所有用法
- [ ] 记录当前使用的所有打印机名称
- [ ] 注意所有打印设置配置
- [ ] 确定是否需要跨平台支持
- [ ] 计划 IronPdf 许可证密钥存储(建议使用环境变量)
- [ ] 先使用 IronPdf 试用版许可证进行测试
软件包变更
- [ ] 删除
PDFPrinting.NETNuGet 软件包 - [ ] 安装
IronPDFNuGet 软件包:<代码>dotnet 添加软件包 IronPdf
代码更改
- [更新命名空间导入
- [ ] 将<代码>HtmlToPdfConverter</代码替换为
ChromePdfRenderer - [ ] 将<代码>WebPageToPdfConverter</代码替换为
ChromePdfRenderer - [ ] 将
ConvertHtmlToPdf(html, path)替换为RenderHtmlAsPdf(html).SaveAs(path)。 - [ ] 将
Convert(url, path)替换为RenderUrlAsPdf(url).SaveAs(path)。 - [ ] 将页眉/页脚从
HeaderText/FooterText更新为HtmlHeader/HtmlFooter。 - [ ] 更新占位符语法 (
{total}→{total-pages}) - [ ] 将打印调用转换为加载-打印模式
- [更新打印设置至<代码>打印设置</代码对象
后迁移
- [ ] 在所有目标平台上测试打印
- [ ] 验证页眉/页脚渲染
- [ ] 考虑为动态文档添加 PDF 生成功能
- [ ] 根据需要添加新功能(合并、水印、安全)。
结论
从 PDFPrinting.NET 迁移到IronPDF可将您的 PDF 工作流程从仅用于打印的解决方案转变为完整的 PDF 生命周期库。 在 PDFPrinting.NET 和IronPDF之间做出选择,主要取决于项目的具体需求:如果唯一的要求是在 Windows 环境中进行稳健、静音的 PDF 打印,则选择 PDFPrinting.NET; 如果项目需要跨多个平台的完整 PDF 处理能力,请选择 IronPDF。
本次迁移的主要变化有 1.转换器类:<代码>HtmlToPdfConverter</代码> / <代码>WebPageToPdfConverter</ 代码> → <代码>ChromePdfRenderer</代码 2.HTML 方法:<代码>ConvertHtmlToPdf(html, path) → <代码>RenderHtmlAsPdf(html).SaveAs(path)</代码 3.URL 方法:<代码>Convert(url, path) → <代码>RenderUrlAsPdf(url).SaveAs(path)</代码 4.页眉/页脚:<代码>HeaderText</代码>/<代码>FooterText</代码>属性 → <代码>HtmlHeader</代码>/<代码>HtmlFooter</代码>对象与<代码>HtmlFragment</代码 5.占位符:{total} → {total-pages} 6.打印模式:直接路径 → 加载-打印 7.平台支持:仅限 Windows → 跨平台 8.新功能:PDF 合并、水印、安全性、文本提取等功能
探索完整的 IronPDF 文档、教程和 API 参考,加快您的 PDFPrinting.NET 迁移。






