如何使用 PDFSharp 在 C# (.NET 5) 中生成 PDF
這段影片是一個關於如何使用 PDFsharp 函式庫生成 PDF 檔案的教學指南,使用 C# 代碼。 講者首先介紹 PDFsharp,它是一個棘手但有效的產生 PDF 檔案的函式庫。 該函式庫具有先進的功能,而且與許多競爭對手不同,它是完全免費的。 講者強調 PDFsharp 儘管複雜,但仍是使用 C# 產生 PDF 檔案的絕佳選擇。
教學開始時,講者會以一個生成的 PDF 檔案為例,該檔案由三行文字組成。 第一行文字不完全是第一行,而第三行文字出現在右下角。 演講者指出,一旦他們仔細研究了程式碼,文字的順序就會變得有意義。 他們還解釋將會使用 .NET 5 來示範 PDFsharp 如何運作。 要更全面地了解如何使用 C# 從頭開始建立 PDF ,IronPDF 提供了一種簡化的替代方法。
以下簡要介紹 PDFsharp 和IronPDF在與 .NET PDF 專案最相關的功能方面的差異:
| 特徵 | IronPDF | PDFSharp |
|---|---|---|
| HTML 轉 PDF | Yes | 不 |
| 數位簽名 | Yes | 不 |
| 加密 | Yes | 不 |
| HTML、CSS 和 JavaScript | Yes | 不 |
| 專業支援 | Yes | 不 |
| 授權 | 商業的 | 麻省理工學院(開源) |
以下各節將對每項差異進行詳細解釋並提供程式碼範例。 比較這兩個函式庫的團隊可以透過30天免費試用來測試IronPDF的功能。
安裝與設定
在進入程式碼之前,講者強調為 PDFsharp 設定環境可能相當具有挑戰性。 他們說明在使用 PDFsharp NuGet 套件詳細資訊之前,必須先安裝三個 NuGet 套件。 第一個套件是 PDFsharp 本身,由於其版本較舊,可能會產生與 .NET 不匹配的警告。 另外兩個軟體包是 System.Drawing.Common 和 System.Text.Encoding.CodePages。

講者強調,在使用 PDFsharp 之前,必須先安裝這三個套件;否則,程式碼會產生錯誤。 他們解釋說,System.Text.Encoding.CodePages 軟體包尤其重要,因為它提供了生成 PDF 文件所需的編碼支援。 講者還要指出,若無法正確安裝套件,就很難排除故障。 希望完全避免這種多軟體包設定的團隊可以按照PDFsharp 到IronPDF遷移指南進行逐步過渡。
安裝相關程式庫
演講者解釋說,為了使PDFSharp正常工作,必須註冊一個提供者 System.Text.Encoding。 該提供者來自 System.Text.Encoding.CodePages 軟體包,演講者強調了註冊該軟體包以確保 PDFsharp 正常運作的重要性。 他們解釋,如果無法註冊提供者,就會出現錯誤,這對於排除故障是很有挑戰性的。
建立 PDF 檔案
接下來,演講者展示了一個簡單的控制台應用程序,該程序使用 PDFsharp 生成 PDF 文件。他們解釋說,在使用該程式庫之前,必須聲明 PDFsharp Drawing 和 PDFsharp PDF 的 using 語句。 演講者接著會介紹產生 PDF 檔案的程式碼,其中包括建立新文件、新增頁面,以及在頁面上繪製文字。
using PdfSharp.Drawing;
using PdfSharp.Pdf;
namespace PdfSharpExample
{
class Program
{
static void Main(string[] args)
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Add a new page
PdfPage page = document.AddPage();
// Prepare to draw on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define a font
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw a string to the page
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.Center);
// Save the document
const string filename = "HelloWorld.pdf";
document.Save(filename);
}
}
}
using PdfSharp.Drawing;
using PdfSharp.Pdf;
namespace PdfSharpExample
{
class Program
{
static void Main(string[] args)
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
// Add a new page
PdfPage page = document.AddPage();
// Prepare to draw on the page
XGraphics gfx = XGraphics.FromPdfPage(page);
// Define a font
XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
// Draw a string to the page
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.Center);
// Save the document
const string filename = "HelloWorld.pdf";
document.Save(filename);
}
}
}
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf
Namespace PdfSharpExample
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a new PDF document
Dim document As New PdfDocument()
' Add a new page
Dim page As PdfPage = document.AddPage()
' Prepare to draw on the page
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
' Define a font
Dim font As New XFont("Verdana", 20, XFontStyle.Bold)
' Draw a string to the page
gfx.DrawString("Hello, PDFsharp!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)
' Save the document
Const filename As String = "HelloWorld.pdf"
document.Save(filename)
End Sub
End Class
End Namespace
演講者指出,可以調整生成 PDF 文件的程式碼,使其包含更複雜的功能,例如添加圖像(請參閱如何使用 IronPDF將圖像轉換為 PDF )、表格和圖表。 他們還解釋 PDFsharp 提供了各種處理字型的功能,包括在 PDF 檔案中嵌入字型。

講者解釋了正確設定環境的重要性,包括安裝必要的 NuGet 套件和註冊 System.Text.Encoding 的提供者。 他們還介紹了一個使用 PDFsharp 產生 PDF 檔案的簡單主控台應用程式,並示範如何調整程式碼以包含更複雜的功能。 對於任何有興趣使用 C# 和 PDFsharp 產生 PDF 檔案的人來說,這段影片是極佳的資源。
建立清單和更複雜的項目
在影片的第二部分,講者首先介紹一個較複雜的範例,即建立 PDF 文件。 他強調一個空的 PDF 文件是沒有意義的,接著解釋如何使用PDFSharp函式庫建立新的頁面。 他指出,這個過程與在 Excel 或 PowerPoint 附加元件中建立事物類似,一旦建立頁面,就能以不需要調用其他方法的參照來運作。

然後,演講者介紹了 XGraphics 變量,該變量提供了繪製文字、線條和圖像等內容的方法——IronPDF 透過其文字和圖像標記 API處理這些功能,而無需手動計算座標。 引入了 XFont 變量,用於設定 PDF 文件中使用的字體。 講者指出,字型可以在其他地方產生,但如果有更複雜的安排,在全局設定字型會很有用。
接下來,演講者討論了DrawString方法,該方法可以將文字寫入PDF檔案。他指出,該方法的困難在於確定文字的繪製位置,並解釋了涉及的各種參數,例如字體、顏色以及文字的對齊邊界。 他也解釋瞭如何使用 XBrushes 變數來設定文字顏色。
解釋 DrawString 和其他方法
然後,演講者展示了使用 DrawString 方法的幾個範例,並給出了不同的參數,例如將文字居中對齊、將文字左下角對齊以及指定文字放置的確切座標。 他指出,最後一個選項是最可自訂的,並提供極大的靈活性。

講者說明如何使用 C# 程式語言的圖形建立表格。 它們涵蓋瞭如何插入圖像、字串和線條,以及如何使用圖形功能繪製弧線和條碼——IronPDF 透過其邊距、標題和 DPI 的渲染選項簡化了這些任務。 他們還解釋了使用座標工作時試誤的重要性,以及如何畫線分隔行。
講者還討論了表格標頭以及數值和行的起點需求。他們解釋了如何調整 y 的位置和增加記錄的行數,以及當表格的記錄超過一定數量時,如何移動到另一個頁面。 最後,他們提到為每個頁面重新設定值的重要性。
您應該選擇哪一個程式庫?
最後,講者強調在使用PDFSharp時熟悉 Microsoft Office 附加元件的重要性,並提供他自己的相關課程。 他也指出,這個函式庫具有高度的通用性,可用於建立各式各樣的 PDF 文件,從簡單的文字文件到包含圖片、圖形和自訂版面的複雜文件。
什麼是 IronPDF?
IronPDF 是一個 C# PDF 庫,用於建立、編輯和操作 PDF 文件。 它以單一 NuGet 套件的形式發布 — Install-Package IronPdf — 並且與 .NET 應用程式集成,無需額外的依賴項設定。
PDFsharp 提供可靠的底層繪圖控制,並以寬鬆的 MIT 許可證發布——這兩個真正的優勢使其成為許多 .NET 專案中的必備工具。 團隊經常遇到的摩擦點在於,當需求從基於座標的渲染擴展到 HTML 到 PDF 的轉換、數位簽章或文件加密等領域時。IronPDF是一個商業支援的庫,它將這些場景作為一流的操作來處理,並提供專業的支援和 API 接口,該接口圍繞著常見的文檔生成工作流程而設計,包括 HTML、CSS 和 JavaScript 渲染。
特點
| 特徵 | IronPDF | PDFSharp |
|---|---|---|
| 將 HTML 轉換為 PDF | 是的 | 不 |
| 專業支援 | 是的 | 不 |
| HTML、CSS 及 JavaScript 支援 | 是的 | 不 |
| 數位簽名 | 是的 | 不 |
| 加密 | 是的 | 不 |
IronPDF 的關鍵功能是它能夠使用IronPDF將 HTML 轉換為 PDF ,從而可以輕鬆地從網頁建立 PDF 文件。 HTML 到 PDF 的轉換不在 PDFsharp 目前的範圍內——它在坐標繪圖層級運行——因此需要此功能的團隊通常會添加單獨的渲染庫或評估IronPDF的內建 Chromium 引擎。
IronPDF 還支援數位簽章和帶密碼保護的 PDF 加密,這對於需要安全處理的敏感文件至關重要。 PDFsharp 並非旨在解決這些安全問題,因此有合規性或文件保護要求的團隊通常會發現這是一個評估IronPDF的自然轉折點。
與 PDFsharp 相比,IronPDF 提供了更廣泛的功能集和更全面的支援服務,在一個 NuGet 套件中涵蓋了 HTML 渲染、加密和數位簽章。 然而,它是一款商業產品,因此,對於需求符合 PDFsharp 座標繪圖模型,且不需要 HTML 轉換或內建安全功能的團隊來說,他們可能更喜歡 PDFsharp 的 MIT 授權的開源方法。
除了授權費用之外,專案總成本還包括開發人員花費在組裝獨立渲染庫、管理複雜文件的基於座標的頁面佈局以及解決 PDFsharp 所需的多軟體包設定問題上的時間。 對於評估多年專案生命週期成本的團隊來說,這些整合和維護成本往往超過開源授權和商業授權之間的差異。
準備好了解IronPDF如何融入您的工作流程了嗎? 下載免費 30 天試用版,測試本對比中涵蓋的每項功能。
常見問題解答
如何在 C# 中使用 PDFsharp 生成 PDF 檔案?
要使用 PDFsharp 生成 PDF,您需要創建一個新的 PDF 文檔,在其中添加一頁,並使用 XGraphics 物件來繪製文字或圖形。確保包含 PdfSharp.Drawing 和 PdfSharp.Pdf 命名空間的使用語句。
PDFsharp 所需的基本 NuGet 套件有哪些?
要有效地使用 PDFsharp,您需要安裝以下 NuGet 套件:PDFsharp、System.Drawing.Common 和 System.Text.Encoding.CodePages。這些套件對於編碼支援和正確的 PDF 生成至關重要。
IronPDF 與 PDFsharp 在 C# 中生成 PDF 的比較如何?
IronPDF 是一個商業庫,提供進階功能如 HTML 到 PDF 轉換、數位簽名和加密,這些在 PDFsharp 中是不可用的。它還提供更好的文件和專業支援,讓其在處理複雜任務時更具用戶友好性。
使用 PDFsharp 生成 PDF 有哪些限制?
PDFsharp 不支援 HTML、CSS 或 JavaScript,這限制了它的使用範圍。它需要對編碼設置和 Microsoft Office 外掛有良好的理解,以便處理複雜文件,這相比於 IronPDF 可能不太直觀。
為什麼 System.Text.Encoding.CodePages 套件對於 PDFsharp 很重要?
System.Text.Encoding.CodePages 套件提供在使用 PDFsharp 生成 PDF 文件時所需的編碼支援。如果沒有正確安裝和註冊此套件,您可能會遇到與編碼相關的錯誤。
我可以使用免費的 C# 庫將 HTML 轉換為 PDF 嗎?
不,PDFsharp 不支援 HTML 到 PDF 的轉換。對於此類功能,您需要一個商業圖書館 مثل IronPDF,它提供此功能以及其他先進功能。
我如何排除 PDFsharp 中常見錯誤?
PDFsharp 中的常見錯誤通常由 NuGet 套件設置不正確或編碼問題引起。確保所有所需的包,包括 System.Text.Encoding.CodePages,都已正確安裝和註冊以解決此類問題。
IronPDF 提供了哪些進階功能供 C# 開發者使用?
IronPDF 提供了 HTML 到 PDF 轉換、數字簽名、加密以及處理 CSS 和 JavaScript 的能力等進階功能。它還提供與 .NET 應用程式的整合和專業支援,使其成為一個強大的開發工具。
如何使用 PDFsharp 自訂 PDF 中的文字布局?
使用 PDFsharp,您可以通過使用 XGraphics 類的 DrawString 方法來自訂 PDF 的文字布局。這允許您設置如字體、顏色和文字對齊等屬性於指定邊界內。
PDFsharp 是否適合在 C# 中創建複雜的 PDF 文件?
PDFsharp 可以創建複雜的 PDF 文件,但需要對編碼和 Microsoft Office 外掛有扎實的理解。IronPDF 可能因其更直觀的 API 和額外功能對於複雜任務而言是更好的選擇。

