可能重复:
Digitally sign PDF files
在应用程序中,用户将上传PDF文件,然后上传使用数字笔创建的个人签名。如何在pdf文件中嵌入此签名?
答案 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(技术上的夏普)的工作。
您还必须确保将文档对象另存为其他名称,因为从技术上讲它将被打开。