跳過到頁腳內容
產品比較
如何使用 PDFsharp 在 C# (.NET 5) 中產生 PDF

如何使用 PDFSharp 在 C# (.NET 5) 中生成 PDF

這段視頻是一個關於如何使用 PDFsharp 庫和 C# 代碼生成 PDF 文件的教程指南。 主講人首先介紹了 PDFsharp,稱其為一個複雜但有效的用來生成 PDF 文件的庫。 這個庫具有先進的功能,與許多競爭者不同的是,它是完全免費的。 主講人強調儘管它複雜,但 PDFsharp 依然是使用 C# 生成 PDF 文件的絕佳選擇。

在開始教程之前,主講人展示了一個由三行文本組成的生成的 PDF 文件範例。 第一行文本並不是完全的第一行,而第三行文本則出現在右下角。 主講人指出,在深入了解代碼後,文本的順序就會變得合理。 他們還解釋將使用 .NET 5 來展示 PDFsharp 的工作原理。

安裝和設置

在進入代碼之前,主講人強調設置 PDFsharp 的環境可能是一件相當有挑戰的事情。 他們解釋說,在使用PDFsharp NuGet 包細節之前,必須安裝三個 NuGet 包。 第一個包是 PDFsharp 本身,因其版本較舊,可能會產生與 .NET 不一致的警告。 另外兩個包是System.Drawing.CommonSystem.Text.Encoding.CodePages

如何使用 C# (.NET 5) 和PDFSharp生成 PDF:圖 1

主講人強調必須在使用 PDFsharp 之前安裝所有三個包,否則代碼將報錯。 他們解釋道System.Text.Encoding.CodePages包尤其重要,因為它提供了生成 PDF 文件所需的編碼支持。 主講人還指出,不正確安裝包會使故障排除變得困難。

安裝相關庫

為了讓PDFSharp正常工作,主講人解釋道必須為System.Text.Encoding註冊提供者。 提供者來自於System.Text.Encoding.CodePages包,主講人強調註冊此包的重要性,以確保 PDFsharp 正常運行。 他們解釋說,不註冊提供者將造成錯誤,這可能會使故障排除變得困難。

創建 PDF 文件

接下來,主講人展示了一個簡單的控制台應用程序,該應用程序使用 PDFsharp 生成 PDF 文件。他們解釋說,在使用該庫之前,必須聲明 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
$vbLabelText   $csharpLabel

主講人指出,生成 PDF 文件的代碼可以調整以包含更複雜的功能,例如添加圖片、表格和圖表。 他們還解釋說,PDFsharp 提供了各種與字體相關的功能,包括在 PDF 文件中嵌入字體。

如何使用 C# (.NET 5) 和PDFSharp生成 PDF:圖 2

主講人解釋正確設置環境的重要性,通過安裝必要的 NuGet 包和註冊System.Text.Encoding提供者。 他們還展示了一個簡單的控制台應用程序,該應用程序使用 PDFsharp 生成 PDF 文件,並演示如何調整代碼以包含更複雜的功能。 這段視頻對於任何對使用 C# 和 PDFsharp 生成 PDF 文件感興趣的人來說都是一個極好的資源。

創建列表和更複雜的項目

在視頻的第二部分,主講人首先介紹了一個生成 PDF 文檔的更複雜例子。 他強調擁有一個空的 PDF 文件沒有任何意義,並接著解釋如何使用PDFSharp庫創建新頁面。 他指出,這個流程與在 Excel 或 PowerPoint 插件中創建東西相似,而且一旦頁面創建完成,它不需要另調用其他方法即可使用一個引用。

如何使用 C# (.NET 5) 和PDFSharp生成 PDF:圖 3

接著,主講人介紹了XGraphics變量,該變量提供了繪製文本、線條和圖片的方法。 XFont變量也被介紹作為設置用於 PDF 文檔的字體的方法。 主講人指出,字體可以在其他地方生成,但如果是更複雜的安排,則全局設置它是有用的。

接下來,主講人討論了DrawString方法,此方法將文本寫入 PDF 文件。他注意到方法的複雜部分在於確定文本將被繪製的位置,並解釋了涉及的各種參數,例如字體、顏色以及文本可能對齊的邊界。 他還解釋了使用XBrushes變量設置文本顏色。

解釋DrawString及其他方法

然後,主講人展示了使用DrawString方法的幾個不同參數的例子,比如將文本居中對齊,將其對齊在左下角,以及指定文本將被放置的確切坐標。 他注意到最後一個選項是最具可定制性的,並且提供了很大的靈活性。

如何使用 C# (.NET 5) 和PDFSharp生成 PDF:圖 4

主講人解釋如何在 C# 編程語言中使用圖形創建表格。 它們涉及如何插入圖片、字符串和線條,以及如何使用圖形功能繪製弧形和條形碼。 他們還解釋了嘗試錯誤的重要性,當處理坐標時,以及如何繪製線條以分隔行。

主講人還討論了表頭和數值與線條的起始點的必要性。 他們解釋了如何調整 y 位置並添加行記錄,以及當表格超過一定數量的記錄時如何移到另一頁。 最後,他們提到每頁重置數值的重要性。

結論

總結中,主講人強調熟悉 Microsoft Office 插件的重要性,當使用PDFSharp時並提供他自己關於該主題的課程。 他還注意到該庫非常多功能,可以用來創建各種 PDF 文檔,從簡單的文本文檔到具圖片、圖形和自定佈局的更複雜的文檔。

IronPDF: 一個 C# 的 PDF 庫

IronPDF 是一個 C# 的 PDF 庫用於創建、編輯和操作 PDF 文件。 它旨在易於使用,並與 .NET 應用程序無縫集成。

與 PDF Sharp 相比,IronPDF 提供了一些優勢。 首先,它是一個商業產品,提供了專業支持,這是 PDF Sharp 無法提供的。其次,IronPDF 擁有更好的文檔和更直觀的 API,使開發人員能更輕鬆地上手和使用該庫。 此外,IronPDF 擁有更豐富的功能集,包括高級 PDF 創建選項,以及支持 HTML、CSS 和 JavaScript。

功能

功能 地 IronPDF PDFSharp
HTML 轉換為 PDF
專業支持
HTML、CSS 和 JavaScript 支持
數字簽名
加密

One of the key features ofIronPDFis its ability to convert HTML to PDF using IronPDF, making it easy to create PDF documents from web pages. 這個功能在 PDF Sharp 中不可用,限制了其使用場景。

IronPDF 還支持數字簽名和加密,這對於需要安全處理的敏感文件至關重要。 這項功能在 PDF Sharp 中不可用。

IronPDF 是一個比 PDF Sharp 更強大且更易於使用的 PDF 庫,具有更多的功能和更好的支持選項。 然而,它也是一個商業產品,所以對於尋找免費或開源解決方案的開發者來說可能不是最佳選擇。

請注意PDFsharp是其相應所有者的註冊商標。 此網站與PDFsharp無關,未經PDFsharp贊助或認可。所有產品名稱、徽標和品牌均為其相應所有者的財產。 比較僅供信息參考,並反映撰寫時公開可用的信息。

常見問題解答

如何使用 C# 中的 PDFsharp 產生 PDF 檔案?

要使用 PDFsharp 產生 PDF,您需要建立一個新的 PDF 文檔,向其中新增一個頁面,並使用XGraphics物件繪製文字或圖形。請確保包含對PdfSharp.DrawingPdfSharp.Pdf命名空間的 using 語句。

PDFsharp 需要哪些必要的 NuGet 套件?

要有效使用 PDFsharp,您需要安裝以下 NuGet 套件:PDFsharp、System.Drawing.Common 和 System.Text.Encoding.CodePages。這些套件對於編碼支援和正確的 PDF 生成至關重要。

在C#中產生PDF方面,IronPDF與PDFsharp相比如何?

IronPDF 是一款商業庫,提供 PDFsharp 不具備的進階功能,例如 HTML 轉 PDF、數位簽章和加密。此外,它還提供更完善的文件和專業的支持,使其在處理複雜任務時更加用戶友好。

使用 PDFsharp 產生 PDF 有哪些限制?

PDFsharp 不支援 HTML、CSS 或 JavaScript,這限制了它的應用場景。對於複雜的文檔,它需要使用者對編碼設定和 Microsoft Office 加載項有深入的了解,這使得它相比 IronPDF 而言不夠直觀易用。

為什麼 System.Text.Encoding.CodePages 套件對 PDFsharp 很重要?

使用 PDFsharp 產生 PDF 檔案時,System.Text.Encoding.CodePages 軟體包提供必要的編碼支援。如果未正確安裝和註冊此軟體包,可能會遇到與編碼相關的錯誤。

我可以使用免費的 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 和更多功能。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。