包含標籤 pdf 的文章

C#: 使用 PDFSharp 在 PDF 加上浮水印和檔案密碼吧

接續前一篇 C#: 使用 DinkToPdf 把 HTML 轉成 PDF,這篇要來用 PDFSharp 對 PDF 檔案進行一些小小的調整。基本上就是紀錄一下這次遇到的需求和一些坑,主要的內容會有:

  • 替 PDF 加上浮水印
  • 實作 FontResolver 以支援中文字,避免 ⎕⎕⎕
  • 替 PDF 加上檔案密碼

首先當然是要先安裝 PDFSharp 套件:

接續上次的進度,我們把 PDF 檔案弄成了一組 byte[]

// 在上一篇文章,我們使用 DinkToPdf 把 Html 轉成了 PDF 檔案的 byte[]
var pdfBytes = converter.Convert(doc);

// 或是打開已存在的 PDF 檔案(留著讓我以後複製貼上)
// var pdfBytes = File.ReadAllBytes(@"C:\temp\output.pdf");

// 使用 PdfSharp 由記憶體串流讀取轉換後的 PDF,開啟模式設定為 Modify(可以進行修改)
using var document = PdfReader.Open(new MemoryStream(pdfBytes), PdfDocumentOpenMode.Modify);

現在我們已經用 PDFSharp 開啟這個 PDF 檔案了,接著就讓我們從加上簡單的浮水印開始吧!

……

閱讀全文


C#: 使用 DinkToPdf 把 HTML 轉成 PDF 吧

Image

最近做的一項需求是要把 HTML 轉換成 PDF,過程中決定使用 DinkToPdf 來處理這一段。

考慮到現在拿到的一些文件模板都是 HTML 檔了,感覺以後會蠻常碰到這個場景,決定來筆記一篇,給未來的我複製貼上。

環境準備

首先,當然是要先到 Nuget 安裝這篇的主角:DinkToPdf

Image

由於 DinkToPdf 只負責包裝給 C# 這段,實際上要產出 PDF 還得用到 wkhtmltopdf 這個工具,因此還需要先弄到 wkhtmltopdf 的檔案。

不過作者也知道大家不是很想另外跑去找,所以 wkhtmltopdf 的組件檔案可以直接從 DinkToPdf 的 Repo 拿。但要記得要按照作業系統下載對應的 wkhtmltopdf 檔案:

  • Windows => libwkhtmltox.dll
  • Linux => libwkhtmltox.so
  • macOS => libwkhtmltox.dylib

但全部都載也不會有人阻止你就是了。

最後把 libwkhtmltox 放到專案的根目錄底下,DinkToPdf 就呼叫得到囉!
(問就是魔法,不服的自己去啃 P/Invoke

……

閱讀全文


系列文

轉貼文

最近文章

分類

友鏈

標籤

統計資訊

工商服務

    DDDTaiwan