我想将图像放入经过数字签名的 PDF 中。如果我用通常的方式来做,签名就会被破坏。但使用 Acrobat 可以将注释图章添加到已签名的 PDF 中,并且签名不会被破坏。
谷歌搜索我找到了一个如何做到这一点的例子:
我已将其翻译为 c# 但没有成功:
using (Stream inputPdfStream = new FileStream("test.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream inputImageStream = new FileStream("grafo.jpg", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream outputPdfStream = new FileStream("result.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
{
var reader = new PdfReader(inputPdfStream);
var stamper = new PdfStamper(reader, outputPdfStream);
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream);
image.SetAbsolutePosition(0, 0);
PdfTemplate template = PdfTemplate.CreateTemplate(stamper.Writer, image.Width, image.Height);
template.AddImage(image);
iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(350, 250, 350 + image.Width, 250 + image.Height);
PdfAnnotation annotation = PdfAnnotation.CreateStamp(stamper.Writer, rect, null, Guid.NewGuid().ToString());
annotation.SetAppearance(PdfName.N, template);
stamper.AddAnnotation(annotation, 1);
stamper.Close();
}
Run Code Online (Sandbox Code Playgroud)
当我使用 Acrobat 打开 PDF 时,签名已损坏。
知道如何使用 iText 做到这一点吗?
谢谢