我已经用成功消息对名为“原始”的PDF进行了数字签名:“已签名且所有签名均有效。” 当我尝试使用以下代码修改该pdf数据并打开名为“ NewlyCreated”的文档时,签名无效 错误消息:至少一个签名有效
public class Program
{
public const String src = @"C:\Original.pdf";
public const String dest = @"C:\NewlyCreated.pdf";
public void createPdf1(String dest)
{
PdfReader reader = new PdfReader(src);
PdfDocument pdfDoc = new PdfDocument(reader,new PdfWriter(dest),new StampingProperties().UseAppendMode());
PageSize ps = pdfDoc.GetDefaultPageSize();
Paragraph p = new Paragraph("This is the text added in the rectangle.");
PdfCanvas canvas = new PdfCanvas(pdfDoc.GetFirstPage());
Rectangle rect = new Rectangle(ps.GetWidth() - 90, ps.GetHeight() - 100, 50, 50);
new Canvas(canvas, pdfDoc, rect)
.Add(p);
canvas.Rectangle(rect);
canvas.Stroke();
pdfDoc.Close();
}
public static void Main(string[] args)
{
Program objProgram = new Program();
objProgram.createPdf1(dest);
}
}
如何在不使用iText7使其签名无效的情况下修改pdf
答案 0 :(得分:1)
这取决于原始pdf的创建方式。如果创建时将Appendable
实例的PdfReader
属性设置为true,则应该可以更新和保留签名。