Asp.net
將數字簽名添加到 pdf 文件
可能重複:
在應用程序中,使用者將上傳 PDF 文件,然後上傳使用數字筆創建的個人簽名。如何將此簽名嵌入到 pdf 文件中?
使用 PDF 編輯庫。我以前用過這個:http: //pdfsharp.com/PDFsharp/
據我所知,您不能以程式方式對文件進行簽名並且仍然使其成為有效簽名。不過,我是從最嚴格的立場來看的。我是一名 DoD 承包商,負責盡可能多地自動創建 pdf 文件,然後使用我們的智能卡對它們進行簽名,其中包含用於官方數字簽名的公鑰。
據我所知,沒有辦法訪問 Windows 證書儲存並以可用的形式獲取我的公鑰。您可以通過 adobe acrobat pro 導出您的簽名(現在沒有標準),但它不會有任何可用的東西。
所以我的最終解決方案是建構兩個文件。一個是在 PDFSharp 中以程式方式編寫的,將成為最終文件。另一個是在 Adobe Acrobat Pro 中建構的空白文件,其中僅包含最終文件所需的兩個簽名欄位。如果有人嘗試這樣做,您還必須優化 .pdf 格式的 V. 5.0 文件。
儘管 PDFSharp 目前無法處理簽名欄位,但它會不理會它們。所以我在編輯模式下打開了原件(帶簽名的空白),所以而不是……
PdfDocument document = new PdfDocument("Name");我用了…
PdfDocument document = PdfReader.Open("Name");而不是為最終文件創建第一頁,我只是重複使用空白頁並使用…添加其他所有內容…
PdfPage page = document.Pages[0];據我所知,這是除了我發現推薦 iText 的所有其他文章之外唯一的解決方法。在 PDFSharp 之後,我無法忍受在 iText 中工作(從技術上講是 Sharp)。
您還必須確保將文件對象保存為不同的名稱,因為從技術上講,它將被打開。