如何在 C# 中從 PDFSharp 轉移到 IronPDF
從PDFSharp轉移到 IronPDF:完整的 C# 遷移指南。
從PDFSharp轉換到IronPDF可將您的 PDF 生成工作流程從基於坐標的手動繪圖轉化成現代化的 HTML/CSS 模板。 本指南提供完整、逐步的轉換路徑,以網頁技術取代繁瑣的 GDI+ 風格定位,大幅縮短開發時間,並透過標準的 HTML/CSS 技能,使 PDF 生成可維護。
為什麼要從PDFSharp轉移到 IronPDF?
瞭解 PDFSharp。
PDFSharp 是著名的低階 PDF 建立函式庫,可讓開發人員透過程式化的方式產生 PDF 文件。PDFSharp以 MIT 授權釋出,開發人員社群可自由使用與修改。PDFSharp的主要功能是從零開始繪圖和編譯 PDF 的工具,根據專案的性質,它既有好處也有限制。
PDFSharp 有時被誤以為是 HTML 到 PDF 的轉換器,但其實不是。 其目的僅限於程式化 PDF 文件的建立。 雖然有一個附加元件 HtmlRenderer.PdfSharp 旨在提供 HTML 渲染功能,但它只支援 CSS 2.1,不支援現代 CSS 功能,例如 flexbox 和 grid。
座標計算問題
PDFSharp 的 GDI+ 方法意味著您必須
- 為每個元素計算精確的 X,Y 位置
- 手動追蹤頁面溢出的內容高度
- 自行處理換行和文字測量
- 以邊框計算逐格繪製表格
- 使用手動分頁功能管理多頁文件
PDFSharp 的架構需要對使用座標定位有深入的了解,因此在建立複雜的佈局時經常會遇到挑戰。
PDFSharp與IronPDF的比較
| 特點 | PDFSharp | IronPDF |
|---|---|---|
| 執照 | MIT (免費) | 商業的 |
| HTML 至 PDF 支援。 | 無 | 有 (HTML5/CSS3 支援) |
| 現代 CSS 支援 | 無 (僅限 CSS 2.1) | 是 (完整 CSS3) |
| 文件撰寫 | 基於座標的繪圖 | HTML/CSS 範本 |
| 佈局系統 | 手動 X,Y 定位 | CSS Flow/Flexbox/Grid |
| 分頁說明 | 手動計算 | 自動 + CSS 控制 |
| 表格 | 單獨繪製單元 | HTML <table> |
| 風格 | 基於程式碼的字型/顏色 | CSS 樣式表 |
| 文件 API。 | 低階(需要座標) | 高階(簡化 API) |
| 更新 | 不經常 | 常規 |
IronPDF 在 HTML 文件需要完全忠實地轉換為 PDF 的場合中大放異彩。 此 .NET 函式庫支援 HTML5 與 CSS3,可確保符合現代網路標準。 它的原生 HTML-to-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授權組態
// 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辨識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" .完整的 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核心 API 對應
| PDFSharp API | IronPdf 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.comAfter (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本範例強調兩個函式庫最顯著的差異。PDFSharp明確指出它 "沒有內建 HTML 到 PDF 的轉換"-您必須手動建立一個 PdfDocument, 加入一個 PdfPage, 得到一個 XGraphics 物件, 建立一個 XFont, 並使用 DrawString() 與 XRect 坐標。
IronPDF 透過 ChromePdfRenderer 提供原生 HTML 至 PDF 的渲染功能。 RenderHtmlAsPdf() 方法接受 HTML 字串,並在內部使用 Chromium 引擎進行轉換。IronPDF可輕鬆將 HTML 檔案轉換為 PDF,並保留 HTML5 和 CSS3 定義的所有樣式,無需進行坐標計算。 請參閱 HTML to 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.comAfter (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.comPDFSharp 要求使用<代碼>PdfReader.Open()</代碼指定 PdfDocumentOpenMode.Modify 開啟 PDF,存取頁面,建立 XGraphics 物件,建立具有樣式的XFont並使用 DrawString() 與 XPoint 指定精確的 X,Y 座標 (200, 400)。
IronPDF 使用 PdfDocument.FromFile(), TextStamper 物件與宣告性的屬性 (Text, FontSize, Color, VerticalAlignment, HorizontalAlignment), 以及 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.comAfter (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.comPDFSharp 需要建立一個新的 PdfDocument, 加入一個 PdfPage, 取得 XGraphics, 從檔案載入一個 XImage, 計算寬度和高度, 使用 DrawImage() 與精確的座標 (50, 50, 200, 200), 然後分別使用 DrawString() 加入文字。
IronPdf 使用帶有 <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字體遷移
// 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文件載入變更
// 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儲存方法變更
// 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頁面存取變更
// 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 contentIRON VB CONVERTER ERROR developers@ironsoftware.com遷移後的新功能
遷移到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.comURL 至 PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");var pdf = renderer.RenderUrlAsPdf("https://example.com");IRON VB CONVERTER ERROR developers@ironsoftware.comPDF 合併
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使用 HTML 的水印
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");IRON VB CONVERTER ERROR developers@ironsoftware.com功能比較摘要
| 特點 | PDFSharp | IronPDF |
|---|---|---|
| 基於座標的繪圖 | ✓ | ✗(使用 HTML) |
| HTML 至 PDF | ✗ | ✓ |
| CSS3 支持 | ✗ | ✓ |
| Flexbox/Grid 佈局 | ✗ | ✓ |
| 文字燙印 | 手冊 XGraphics | TextStamper |
| 圖像沖印 | 手冊 XImage | ImageStamper |
| 合併 PDF | 手動的 | ✓ |
| URL 至 PDF | ✗ | ✓ |
| 現代網路渲染 | ✗ | Chromium 引擎 |
| 自動分頁 | ✗ | ✓ |
遷移清單
預遷移
- [清查程式碼庫中所有PDFSharp的使用情況
- [ ] 確定所產生的文件類型(報告、發票、證書)
- [ ] 注意任何自訂的圖形或繪圖操作
- [ ] 計劃IronPDF授權金鑰的儲存(建議使用環境變數)
- [ ] 先使用 IronPdf 試用授權進行測試
套件變更
- [ ] 移除
PdfSharpNuGet 套件 - [如果使用 NuGet 套件,請移除
PdfSharp-wpf - [ ] 移除
PdfSharp.ChartingNuGet 套件(如使用 - [ ] 安裝
IronPDFNuGet 套件:dotnet add package IronPdf。
程式碼變更
- [ ] 更新命名空間匯入 (
using PdfSharp.Pdf;→using IronPdf;) - [ ] 新增
使用 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.Paradigm:基於座標的繪圖 → HTML/CSS 模板化 2.HTML 支援:無法使用 → 原生 Chromium 呈現 3.佈局:手動 X,Y 定位 → CSS Flow/Flexbox/Grid 4.字型:XFont 物件 → CSS font-family, font-size 5.顏色:XBrush, XPen → CSS color, background-color, border. 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 的情況下,IronPDF 超越了 PDFSharp。 雖然它需要付費授權,但提高的生產力和現代化的功能往往能證明這項投資是值得的。






