跳至页脚内容
迁移指南

如何用 C# 从 PDFSharp 迁移到 IronPDF

从PDFSharp迁移到 IronPDF:完整的 C# 迁移指南

从PDFSharp迁移到IronPDF可将您的 PDF 生成工作流程从基于坐标的手动绘制转变为现代 HTML/CSS 模板。 本指南提供了一个完整的、循序渐进的迁移路径,用网络技术取代了繁琐的 GDI+ 样式定位,大大缩短了开发时间,并使 PDF 生成可通过标准的 HTML/CSS 技能进行维护。

为什么要从PDFSharp迁移到 IronPDF.

了解 PDFSharp.

PDFSharp 是著名的底层 PDF 创建库,允许开发人员通过编程方式生成 PDF 文档。PDFSharp根据 MIT 许可发布,允许开发人员自由使用和修改。PDFSharp主要用作从头开始绘制和编译 PDF 的工具,根据项目的性质,这既可能是有益的,也可能是限制性的。

PDFSharp 有时会被误认为是 HTML 到 PDF 的转换器,其实不然。 其目的仅限于编程式 PDF 文档创建。 虽然有一个插件 HtmlRenderer.PdfSharp 可以提供 HTML 渲染功能,但它只支持 CSS 2.1,不支持 flexbox 和 grid 等现代 CSS 功能。

坐标计算问题

PDFSharp 的 GDI+ 方法意味着您必须

  • 为每个元素计算精确的 X、Y 位置
  • 手动跟踪页面溢出的内容高度
  • 自行处理换行和文本测量
  • 通过边框计算逐格绘制表格
  • 使用手动分页功能管理多页文档

PDFSharp 的架构要求对使用坐标定位有深刻的理解,这往往给创建复杂布局带来挑战。

PDFSharp与IronPDF对比

特征PDFSharpIronPDF
许可麻省理工学院(免费)商业翻译
HTML 转 PDF 支持是(支持 HTML5/CSS3)
现代 CSS 支持否(仅限 CSS 2.1)是(全 CSS3)
文档创建基于坐标的绘图HTML/CSS 模板
布局系统手动 X、Y 定位CSS Flow/Flexbox/Grid
分页符手工计算自动 + CSS 控制
表格单独绘制单元格HTML <table>
样式基于代码的字体/颜色CSS 样式表
文档应用程序接口低级(需要坐标)高级(简化 API)
更新不经常常规翻译

IronPDF 在需要将 HTML 文档完全忠实地转换为 PDF 的场景中大显身手。 该 .NET 库支持 HTML5 和 CSS3,确保符合现代网络标准。 其本地 HTML 转 PDF 功能意味着开发人员可以利用现有的网页内容或使用当代网络工具设计的模板。

对于计划在 2025 年和 2026 年之前采用 .NET 10 和 C# 14 的团队来说,IronPDF 提供了一种现代化的方法,在充分利用网络开发技能的同时,消除了坐标计算。


开始之前

前提条件

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 PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting

# Add IronPDF
dotnet add package IronPdf
# Remove PDFSharp
dotnet remove package PdfSharp
dotnet remove package PdfSharp-wpf
dotnet remove package PdfSharp.Charting

# Add IronPDF
dotnet add package IronPdf
SHELL

许可配置

// 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
$vbLabelText   $csharpLabel

确定PDFSharp的用法

# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
# Find allPDFSharpusages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
SHELL

完整的 API 参考

命名空间变更

// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;
// Before: PDFSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

核心 API 映射

PDFSharp APIIronPdf API备注
<代码>new PdfDocument()</ 代码<代码>ChromePdfRenderer.RenderHtmlAsPdf()</代码从 HTML 创建
<代码>document.AddPage()</代码自动翻译根据 HTML 内容创建的页面
<代码>XGraphics.FromPdfPage()</代码不需要使用 HTML 元素
<代码>XGraphics.DrawString()</代码HTML <p>, <h1> 等。使用 CSS 定位
<代码>XGraphics.DrawImage()</代码HTML <img> 标记使用 CSS 定位
<代码>XFont</代码CSS font-family, font-size标准 CSS
<代码>XBrush</代码>, <代码>XPen</代码CSS 颜色/边框<代码>颜色</代码>, <代码>背景颜色</代码
<代码>document.Save()</代码<代码>pdf.SaveAs()</代码类似功能
<代码>PdfReader.Open()</代码<代码>PdfDocument.FromFile()</代码打开现有 PDF

代码迁移示例

示例 1:HTML 到 PDF 的转换

之前 (PDFSharp):

// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        //PDFSharpdoes not have built-inHTML 至 PDFconversion
        // You need to manually parse HTML and render content
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 12);

        // 手册 text rendering (no HTML support)
        gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
            new XRect(0, 0, page.Width, page.Height),
            XStringFormats.TopLeft);

        document.Save("output.pdf");
    }
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        //PDFSharpdoes not have built-inHTML 至 PDFconversion
        // You need to manually parse HTML and render content
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 12);

        // 手册 text rendering (no HTML support)
        gfx.DrawString("Hello from PDFSharp", font, XBrushes.Black,
            new XRect(0, 0, page.Width, page.Height),
            XStringFormats.TopLeft);

        document.Save("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        //IronPDFhas nativeHTML 至 PDFrendering
        var renderer = new ChromePdfRenderer();

        string html = "<h1>Hello from IronPDF</h1><p>EasyHTML 至 PDFconversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        //IronPDFhas nativeHTML 至 PDFrendering
        var renderer = new ChromePdfRenderer();

        string html = "<h1>Hello from IronPDF</h1><p>EasyHTML 至 PDFconversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这个例子突出了两个库之间最显著的区别。PDFSharp明确指出它 "没有内置 HTML 到 PDF 的转换功能"--您必须手动创建一个 PdfDocument 文件,添加一个 PdfPage 页面,获取一个 XGraphics 对象,创建一个<代码>XFont</代码字体,并使用 DrawString()XRect 坐标。

IronPDF 通过 ChromePdfRenderer 提供本地 HTML 到 PDF 的渲染。 RenderHtmlAsPdf() 方法接受 HTML 字符串,并在内部使用 Chromium 引擎进行转换。IronPDF可轻松将 HTML 文件转换为 PDF,保留 HTML5 和 CSS3 中定义的所有样式,无需进行坐标计算。 请参阅 HTML 转 PDF 文档,了解全面的示例。

示例 2:在现有 PDF 中添加文本/水印

之前 (PDFSharp):

// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
        PdfPage page = document.Pages[0];

        // Get graphics object
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 20, XFontStyle.Bold);

        // Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red,
            new XPoint(200, 400));

        document.Save("modified.pdf");
    }
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
        PdfPage page = document.Pages[0];

        // Get graphics object
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 20, XFontStyle.Bold);

        // Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red,
            new XPoint(200, 400));

        document.Save("modified.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");

        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            Color = IronSoftware.Drawing.Color.Red,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("modified.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");

        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            Color = IronSoftware.Drawing.Color.Red,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };

        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("modified.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp 要求使用<代码>PdfReader.Open()</代码指定 PdfDocumentOpenMode.Modify 打开 PDF,访问页面,创建 XGraphics 对象,创建具有样式的<代码>XFont</代码并使用 DrawString() 指定精确的 X、Y 坐标(200, 400)的 XPoint

IronPDF 通过PdfDocument.FromFile()、具有声明属性(TextFontSizeColorVerticalAlignmentHorizontalAlignment)的TextStamper对象和ApplyStamp()简化了这一过程。 无需坐标计算--只需指定对齐方式,IronPDF 即可处理定位。 请注意,IronPDF.Editing 名称空间是实现盖章功能所必需的。

示例 3:使用图像创建 PDF.

之前 (PDFSharp):

// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Create new PDF document
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Load and draw image
        XImage image = XImage.FromFile("image.jpg");

        // Calculate size to fit page
        double width = 200;
        double height = 200;

        gfx.DrawImage(image, 50, 50, width, height);

        // Add text
        XFont font = new XFont("Arial", 16);
        gfx.DrawString("Image in PDF", font, XBrushes.Black,
            new XPoint(50, 270));

        document.Save("output.pdf");
    }
}
// NuGet: Install-Package PdfSharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Create new PDF document
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);

        // Load and draw image
        XImage image = XImage.FromFile("image.jpg");

        // Calculate size to fit page
        double width = 200;
        double height = 200;

        gfx.DrawImage(image, 50, 50, width, height);

        // Add text
        XFont font = new XFont("Arial", 16);
        gfx.DrawString("Image in PDF", font, XBrushes.Black,
            new XPoint(50, 270));

        document.Save("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create PDF from HTML with image
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Image in PDF</h1>
            <img src='image.jpg' style='width:200px; height:200px;' />
            <p>Easy image embedding with HTML</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        // Alternative: Add image to existing PDF
        var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
        var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
        {
            VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
        };
        existingPdf.ApplyStamp(imageStamper);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create PDF from HTML with image
        var renderer = new ChromePdfRenderer();

        string html = @"
            <h1>Image in PDF</h1>
            <img src='image.jpg' style='width:200px; height:200px;' />
            <p>Easy image embedding with HTML</p>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        // Alternative: Add image to existing PDF
        var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
        var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
        {
            VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
        };
        existingPdf.ApplyStamp(imageStamper);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFSharp 要求创建一个新的 PdfDocument, 添加一个 PdfPage, 获取 XGraphics, 从文件中加载一个 XImage, 计算宽度和高度, 使用 DrawImage() 精确坐标(50, 50, 200, 200), 然后使用 DrawString() 分别添加文本。

IronPdf 使用标准 HTML,带有 <img> 标记和 CSS 样式(style='width:200px; height:200px;'). 无需进行坐标计算--由 CSS 处理布局。IronPDF还提供 ImageStamper 用于将图像添加到具有声明对齐属性的现有 PDF 中。 在我们的教程中了解更多信息。


关键迁移说明

范式转换:坐标到 HTML/CSS.

最大的变化是从基于坐标的绘图转向 HTML/CSS:

// PDFSharp: 手册 positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));

// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
    <h1>Invoice</h1>
    <p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFSharp: 手册 positioning nightmare
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));

// IronPDF: Let CSS handle layout
var html = @"
<div style='padding: 50px;'>
    <h1>Invoice</h1>
    <p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

字体迁移

// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);

// IronPDF: CSS font properties
var html = @"
<style>
    h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
    p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
// PDFSharp: XFont objects
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Times New Roman", 12);

// IronPDF: CSS font properties
var html = @"
<style>
    h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
    p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

文档加载更改

// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
// PDFSharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

保存方法更改

// PDFSharp: document.Save()
document.Save("output.pdf");

// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
// PDFSharp: document.Save()
document.Save("output.pdf");

// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

页面访问更改

// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF:自动翻译page handling or pdf.Pages[0]
// Pages are created automatically from HTML content
// PDFSharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF:自动翻译page handling or pdf.Pages[0]
// Pages are created automatically from HTML content
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

迁移后的新功能

迁移到IronPDF后,您将获得PDFSharp无法提供的功能:

将原生 HTML 转换为 PDF.

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

URL到PDF

var pdf = renderer.RenderUrlAsPdf("https://example.com");
var pdf = renderer.RenderUrlAsPdf("https://example.com");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF 合并

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用 HTML 的水印

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

功能对比摘要

特征PDFSharpIronPDF
基于坐标的绘图✗(使用 HTML)
HTML 至 PDF
CSS3 支持
Flexbox/Grid 布局
文本冲压手册 XGraphicsTextStamper
图像冲压手册 XImageImageStamper
合并 PDF手册
URL 至 PDF
现代网络渲染Chromium 引擎
自动分页

迁移清单

迁移前

  • [ ] 清点代码库中PDFSharp的所有使用情况
  • [ ] 确定生成的文件类型(报告、发票、证书)
  • [ ] 注意任何自定义图形或绘图操作
  • [ ] 计划 IronPdf 许可证密钥存储(建议使用环境变量)
  • [ ] 先使用 IronPdf 试用版许可证进行测试

软件包变更

  • [ ] 删除 PdfSharp NuGet 软件包
  • [ ] 删除 PdfSharp-wpf NuGet 软件包(如使用
  • [ ] 如果使用 PdfSharp.Charting NuGet 软件包,请将其移除
  • [ ] 安装 IronPDF NuGet 软件包:<代码>dotnet 添加软件包 IronPdf

代码更改

  • [ ] 更新命名空间导入(使用 PdfSharp.Pdf;使用 IronPdf;)
  • [ ] 添加 using IronPdf.Editing; 以实现盖章功能
  • [ ] 将基于坐标的布局转换为 HTML/CSS
  • [ ] 将<代码>XFont</代码替换为 CSS 字体属性
  • [ ] 将 XBrush/XPen 替换为 CSS 颜色/边框
  • [ ] 将<代码>XGraphics.DrawString()</代码替换为 HTML 文本元素
  • [ ] 将<代码>XGraphics.DrawImage()</代码替换为 HTML <img> 标记
  • [ ] 将<代码>PdfReader.Open()</代码替换为<代码>PdfDocument.FromFile()</代码。
  • [ ] 将<代码>document.Save()</代码替换为<代码>pdf.SaveAs()</代码。
  • [ ] 将表格绘制代码转换为 HTML 表格

后迁移

  • [ ] 生成的 PDF 的可视化比较
  • [ ] 测试多页文档
  • [ ] 验证字体渲染
  • [ ] 根据需要添加新功能(HTML 转 PDF、合并、水印

结论

PDFSharp 和IronPDF在 C# 的 PDF 生成领域满足不同的需求。PDFSharp适用于需要对文档渲染进行精细控制而不需要额外依赖性的项目,也适用于预算有限的项目。 但是,对于需要采用现代网络标准或通过 HTML 传输动态内容的项目,翻译就显得力不从心了。

本次迁移的主要变化有 1.范式:基于坐标的绘图 → HTML/CSS 模板化 2.HTML 支持: 不可用 → 本机 Chromium 渲染 3.布局:手动 X、Y 定位 → CSS Flow/Flexbox/Grid 4.字体XFont 对象 → CSS font-family, font-size 5.颜色:<代码>XBrush</代码>、<代码>XPen</代码> → CSS <代码>颜色</代码>、<代码>背景颜色</代码>、<代码>边框</代码 6.图像XImage.FromFile() + DrawImage() → HTML <img>ImageStamper 7.文本冲压:<代码>XGraphics.DrawString()</代码> → <代码>TextStamper</代码 8.文档加载:<代码>PdfReader.Open()</代码> → <代码>PdfDocument.FromFile()</代码 9.保存:<代码>document.Save()</代码> → <代码>pdf.SaveAs()</代码 10.新功能:PDF 合并、URL 转 PDF、现代 CSS 支持等

IronPDF 凭借其强大的特性和功能,支持 CSS3、HTML5 和高级文档操作,在需要进行现代 HTML 到 PDF 转换的情况下超越了 PDFSharp。 虽然这些工具需要付费许可,但其提高的生产率和现代化的功能往往能证明投资的合理性。

探索完整的IronPDF文档教程API参考,加速您的PDFSharp迁移。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。