探究PDFSharp——一個開源PDF生成工具

一、簡介

PDFSharp是一款用於生成和編輯PDF文檔的開源工具。它提供了許多有用的功能,包括創建新文檔、添加圖像、文本、表格和頁面等,同時還支持加密、添加書籤、頁碼,並具有一些其他高級功能,例如向PDF文檔添加數字簽名。PDFSharp基於.NET標準,可以在各種操作系統和平台上使用。

二、創建PDF文檔

使用PDFSharp可以輕鬆地創建新PDF文檔。首先,創建一個新的PDF文檔對象,指定文檔屬性,例如作者、主題和創建日期:

PdfDocument document = new PdfDocument();
document.Info.Author = "John Doe";
document.Info.Title = "My Title";
document.Info.Subject = "My Subject";
document.Info.Keywords = "PDFSharp, PDF, API";
document.Info.CreationDate = DateTime.Now;

接下來,可以為文檔添加一個或多個頁面。頁面是PDF文檔的基本單位,可以包含文本、圖像、表格等元素。以下是創建一個新頁面的示例:

PdfPage page = document.AddPage();

然後,可以在頁面上添加各種元素,例如文字和圖像。例如,下面是向頁面添加一個簡單文本框的代碼:

XFont font = new XFont("Verdana", 20, XFontStyle.Bold);
XBrush brush = new XSolidBrush(XColor.FromKnownColor(KnownColor.Black));
gfx.DrawString("Hello, World!", font, brush, new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);

三、添加圖像

PDFSharp支持多種圖像格式,包括BMP、JPG、PNG、GIF和TIFF等。以下是添加圖像的示例:

XImage image = XImage.FromFile("picture.jpg");
gfx.DrawImage(image, 0, 0, page.Width, page.Height);

四、添加表格

PDFSharp可以輕鬆地在頁面上添加表格。以下是創建一個新表格並向其中添加數據的示例代碼:

PdfTable table = new PdfTable();
table.Style = "Table";
table.Rows.Add(new PdfTableRow { Cells = { new PdfTableCell { Value = "Name" }, new PdfTableCell { Value = "Age" } } });
table.Rows.Add(new PdfTableRow { Cells = { new PdfTableCell { Value = "John Doe" }, new PdfTableCell { Value = "30" } } });
table.Rows.Add(new PdfTableRow { Cells = { new PdfTableCell { Value = "Jane Doe" }, new PdfTableCell { Value = "28" } } });
table.Draw(gfx, new XRect(0, 0, page.Width, page.Height));

五、數字簽名

PDFSharp支持向PDF文檔添加數字簽名,以確保文檔的完整性和真實性。以下是向PDF文檔添加數字簽名的示例代碼:

PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();

X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");
PdfSignatureOptions options = new PdfSignatureOptions
{
    Certificate = cert,
    ContactInfo = "John Doe",
    Location = "My Location",
    Reason = "My Reason",
    SignatureFormat = PdfSignatureFormat.Pkcs7
};

options.DocumentPermissions = PdfDocumentPermissions.AllowPrinting;

PdfSignature signature = new PdfSignature(options);
signature.SignatureAppearance = new PdfSignatureAppearance
{
    CustomAppearanceText = "My Custom Text",
};

signature.Sign(page, gfx);

六、加密

PDFSharp也支持對PDF文檔進行加密。以下是對PDF文檔進行加密的示例代碼:

PdfEncoder encoder = new PdfEncoder();
encoder.SetEncryption(new PdfEncryptionOptions
{
    UserPassword = "password",
    OwnerPassword = "owner",
    Permissions = PdfDocumentPermissions.AllowPrinting
});

document.Save("document.pdf", encoder);

七、書籤與目錄

PDFSharp還支持在PDF文檔中添加書籤和目錄。以下是創建一個新目錄並向其中添加條目的示例:

PdfOutline root = document.Outlines.Add(null, "My Outline", true, PdfOutlineStyle.Bold, XColors.Red);
PdfOutline child = document.Outlines.Add(root, "My Child", false, PdfOutlineStyle.Regular, XColors.Blue);
PdfOutline subChild = document.Outlines.Add(child, "My Sub Child", false, PdfOutlineStyle.Italic, XColors.Green);

八、總結

PDFSharp是一個強大的PDF生成工具,可以幫助開發人員輕鬆地創建、編輯和加密PDF文檔。它支持許多有用的功能,如添加圖像、表格、數字簽名和書籤等,而且還相對容易學習。如果需要生成PDF文檔,PDFSharp是一個值得考慮的工具。

原創文章,作者:BVNY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131442.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BVNY的頭像BVNY
上一篇 2024-10-03 23:45
下一篇 2024-10-03 23:45

相關推薦

  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python基礎教程第三版PDF下載

    熟練掌握Python編程語言可以讓你輕鬆地用代碼解決很多問題,Python基礎教程第三版是一本適合初學者的Python教程。本文將從幾個方面詳細介紹Python基礎教程第三版PDF…

    編程 2025-04-29
  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • 如何通過jstack工具列出假死的java進程

    假死的java進程是指在運行過程中出現了某些問題導致進程停止響應,此時無法通過正常的方式關閉或者重啟該進程。在這種情況下,我們可以藉助jstack工具來獲取該進程的進程號和線程號,…

    編程 2025-04-29
  • 智能風控 Python金融風險PDF

    在金融交易領域,風險控制是一項重要任務。智能風控是指通過人工智能技術和算法模型,對金融交易進行風險識別、風險預警、風險控制等操作。Python是一種流行的編程語言,具有方便、易用、…

    編程 2025-04-29
  • 註冊表取證工具有哪些

    註冊表取證是數字取證的重要分支,主要是獲取計算機系統中的註冊表信息,進而分析痕迹,獲取重要證據。本文將以註冊表取證工具為中心,從多個方面進行詳細闡述。 一、註冊表取證工具概述 註冊…

    編程 2025-04-29
  • SDN開源組織中ONOS起步最早

    ONOS是一個開源軟件定義網絡(SDN)操作系統,由ON.Lab創建並一直在開發。該平台旨在通過使用網絡虛擬化技術使工程師能夠快速靈活地創建和管理網絡服務。 一、ONOS的優勢 在…

    編程 2025-04-29
  • Python編程與數據分析應用PDF

    Python編程是一門功能強大的編程語言,其易讀易寫、可擴展性強等優點使得它在各個領域都有着廣泛的應用。而數據分析也是當今各行各業的基本需求,Python語言通過優秀的數據分析庫也…

    編程 2025-04-28
  • GitHub好玩的開源項目

    本文旨在介紹GitHub上一些好玩的開源項目,並提供代碼示例供讀者參考和學習。 一、Emoji列表 GitHub上有一份完整的Emoji列表,它支持各種平台和設備,方便用戶在Git…

    編程 2025-04-28

發表回復

登錄後才能評論