當前位置: 妍妍網 > 碼農

強大的 .NET PDF處理神器:PDFSharp

2024-05-25碼農

前言

PDFSharp是一款開源的.NET庫,專為處理PDF文件而設計。它以其豐富的功能和易用性贏得了廣大開發者的青睞。無論是建立、編輯、合並、拆分還是轉換PDF檔,PDFSharp都能輕松應對。

正文

目前.NET 平台常見的PDF類別庫

  • Aspose: https://reference.aspose.com/

  • QuestPDF: https://www.questpdf.com/

  • Spire: https://www.e-iceblue.cn/Introduce/Spire-Office-NET.html

  • iTextSharp: https://github.com/itext/itextsharp

  • 有一說一都挺好用的,個人特別喜歡 QuestPDF它基於 C# Fluent API 提供全面的布局引擎;但是這些庫要麽屬於商業庫價格不菲(能理解收費),但是年費太貴了。

    要麽是有條件限制開源的,如Spire開源版本有各種限制。iTextSharp雖然沒有限制,但是開源協定不友好(AGPL),用於閉源商業軟體屬於要掛恥辱柱的行為了。無意間發現了另一款基於.NET 6 的跨平台、免費開源(MIT協定)pdf處理庫。

    PDFSharp: https://docs.pdfsharp.net/,該庫還有基於.NET Framework的版本 https://pdfsharp.net/ 。 .NET 6 版本 去年剛釋出 ,一個 較為活躍的社群 https://forum.pdfsharp.net/。

    嘗試使用了下,還不錯,該有的都有,簡單的pdf檔可以直接使用PDFSharp庫生成,復雜點的則提供了MigraDoc來編輯。

    自己的小套用都已經上生成環境了,覺得該庫是挺ok的了。

    主要功能

    1、建立PDF:無需預先存在的樣版,PDFSharp允許您直接從頭開始構建PDF文件。

    2、內容插入:支持在PDF頁面中添加文本、影像、表格、圖形等豐富元素。

    3、格式化:提供字型選擇、顏色設定、布局調整等樣式控制功能,幫助您建立高度客製化的PDF文件。

    4、合並與拆分:能夠將多個PDF文件合並成一個,或將一個PDF文件拆分成多個部份。

    5、加密與解密:對PDF檔進行安全設定,保護文件內容不被非法存取。

    優勢特點

    簡單易用:PDFSharp提供簡潔的API,使開發人員能夠快速上手並輕松建立和處理PDF文件。

    全面功能:支持各種PDF操作,包括建立、編輯、合並、拆分、轉換和加密等,滿足不同的需求。

    PDFSharp廣泛套用於各種場景,如生成報告、建立電子書、生成發票和合約等。無論是個人使用者還是企業使用者,都能從中受益。

    PDFSharp文件

    .NET Framework 文件站點下有很多例子大家可以看看

    我的使用方式較為粗暴,使用 MigraDoc 編輯文件表格,再生成PDF檔。有時間再嘗試封裝個類似於QuestPDF的擴充套件庫,太喜歡Fluent這種形式了。

    程式碼範例

    讓我們來制作下圖的PDF

    新建一個計畫,透過Nuget引入PDFsharp、PDFsharp-MigraDoc,

    若用System.Drawing圖形庫則不用參照SkiaSharp,我的例子使用SkiaSharp圖形庫便於跨平台。

    首先是字型的匯入

    因為PDFSharp本身不支持中文字型,但提供了自訂解析器的處理,所以我們先實作下中文字型解析器。

    先將黑體作為嵌入資源匯入計畫中,路徑是/Fonts/下

    新建一個檔ChineseFontResolver.cs用來實作我們的中文解析器

    好了,開始制作我們的pdf吧

    至此我們就制作好了一個簡單的pdf,當然了這裏沒有加上檔資訊那些,僅僅是生成內容罷了,有那些需要的可以自己根據文件站點看看如何設定。

    源碼地址

    gitee.com/huangguishen/MyFile/tree/master/PDFSharpDemo

    轉自:Hi_Carl

    連結:cnblogs.com/laikwan/p/18206787

    - EOF -

    推薦閱讀 點選標題可跳轉

    看完本文有收獲?請轉發分享給更多人

    推薦關註「DotNet」,提升.Net技能

    點贊和在看就是最大的支持❤️