如何從PDF文件中提取頁面——逐步指南
這段影片是關於如何使用C#程式碼和PDFSharp程式庫來生成PDF文件的教學指南。 演講者首先介紹了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 | 否 |
| 授權 | 商業用途 | MIT(開源) |
以下部分將詳細解釋並提供這些差異的程式碼範例。 正在比較這兩個程式庫的團隊可以試用IronPDF的免費30天試用來測試其功能。
安裝與設置
在開始程式碼之前,演講者強調,設置PDFSharp的環境可能相當具有挑戰性。 他們解釋說,必須先安裝三個NuGet包,然後才能使用PDFSharp 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是一個用於建立、編輯和操作PDF文件的C# 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的自然轉折點。
IronPDF提供了一個較廣泛的功能集和較全面的支持服務,相較於PDFSharp涵蓋HTML渲染、加密和數位簽名在單一的NuGet包中。 然而,它是一個商業產品,因此需求適合於PDFSharp基於坐標繪圖模型,且不需要HTML轉換或內建的安全功能的團隊可能更喜歡PDFSharp的MIT授權開源方式。
超過授權成本,總專案成本還包括用於組裝單獨渲染程式庫、管理復雜文件的基於坐標的頁面佈局和排除使用PDFSharp所需的多包設置的開發者小時數。 對於評估多年度專案生命週期成本的團隊來說,這些整合和維護成本通常會超過開源和商業授權之間的差距。
準備好了解IronPDF如何融入您的工作流程嗎? [下載免費30天試用](trial-license,來測試本比較中涵蓋的每個功能。
[{i:(PDFsharp是一個其各自所有者的註冊商標。 本網站與PDFsharp無關,未經其認可或贊助。所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供資訊參考,反映了撰寫時的公開可用資訊。)]
常見問題
如何在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外掛程式有充分的理解。由於它較為直觀的API和額外功能,IronPDF可能是處理複雜任務的更好選擇。



