Asp.net

將數字簽名添加到 pdf 文件

  • September 27, 2012

可能重複:

對 PDF 文件進行數字簽名

在應用程序中,使用者將上傳 PDF 文件,然後上傳使用數字筆創建的個人簽名。如何將此簽名嵌入到 pdf 文件中?

使用 PDF 編輯庫。我以前用過這個:http: //pdfsharp.com/PDFsharp/

據我所知,您不能以程式方式對文件進行簽名並且仍然使其成為有效簽名。不過,我是從最嚴格的立場來看的。我是一名 DoD 承包商,負責盡可能多地自動創建 pdf 文件,然後使用我們的智能卡對它們進行簽名,其中包含用於官方數字簽名的公鑰。

據我所知,沒有辦法訪問 Windows 證書儲存並以可用的形式獲取我的公鑰。您可以通過 adobe acrobat pro 導出您的簽名(現在沒有標準),但它不會有任何可用的東西。

所以我的最終解決方案是建構兩個文件。一個是在 PDFSharp 中以程式方式編寫的,將成為最終文件。另一個是在 Adob​​e 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)。

您還必須確保將文件對象保存為不同的名稱,因為從技術上講,它將被打開。

引用自:https://stackoverflow.com/questions/5107138