PDF修改后,PDF签名无效

时间:2019-08-20 11:46:05

标签: c# pdf adobe digital-signature itext7

我已经用成功消息对名为“原始”的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

1 个答案:

答案 0 :(得分:1)

这取决于原始pdf的创建方式。如果创建时将Appendable实例的PdfReader属性设置为true,则应该可以更新和保留签名。