将数字签名添加到pdf文件

时间:2011-02-24 16:02:57

标签: asp.net pdf digital-signature

  

可能重复:
  Digitally sign PDF files

在应用程序中,用户将上传PDF文件,然后上传使用数字笔创建的个人签名。如何在pdf文件中嵌入此签名?

2 个答案:

答案 0 :(得分:1)

使用PDF编辑库。我以前用过这个: http://pdfsharp.com/PDFsharp/

答案 1 :(得分:0)

据我所知,您无法以编程方式对文档进行签名,但仍然是有效的签名。我从最严格的位置看这个。我是一名国防部承包商,负责尽可能自动创建PDF文档,然后使用包含官方数字签名公钥的智能卡对其进行签名。

据我所知,无法访问Windows证书存储区并以可用的形式获取我的公钥。您可以通过adobe acrobat pro导出您的签名(现在没有标准),但它不会是任何可用的。

所以我的最终解决方案是建立两个文件。一个是以编程方式在PDFSharp中,并将成为最终文档。另一个是在Adobe Acrobat Pro中构建的空白文档,其中仅包含最终文档所需的两个签名字段。如果有人试图这样做,你还必须在.pdf格式的V. 5.0中优化文件。

虽然PDFSharp目前无法处理签名字段,但它会让它们孤立无援。所以我在编辑模式下打开原始(空白w /签名),而不是......

PdfDocument document = new PdfDocument("Name");

我用过......

PdfDocument document = PdfReader.Open("Name");

而不是为最终文档创建第一页,我只是重复使用空白页面并使用...添加其他所有内容...

PdfPage page = document.Pages[0];

据我所知,除了我发现推荐iText的所有其他帖子之外,这是唯一的解决方法。在PDFSharp之后,我无法忍受iText(技术上的夏普)的工作。

您还必须确保将文档对象另存为其他名称,因为从技术上讲它将被打开。