彩票走势图

logo E-iceblue中文文档
文档彩票走势图>>E-iceblue中文文档>>使用以下功能检测已签名的 PDF 是否被修改过

使用以下功能检测已签名的 PDF 是否被修改过


在对 PDF 文档进行数字签名后,该 PDF 已被锁定以防止更改或允许检测更改。本文将介绍如何使用 Spire.PDF 检测已签名的 PDF 是否被修改。

为了测试此功能,我们创建了一个 PDF 文档,并使用数字签名对 PDF 进行了签名,然后将示例文档中的 "PDF "改为 "Pdf",并保存为另一个文件。下面是修改后的 PDF 文档:

代码片段

步骤 1:创建 Window Forms 应用程序并设计 form1 如下。

第 2 步:双击 'Load按钮,编写以下代码,以便从文件夹中查找 PDF 文件,并在 textBox1.Text 中返回文件路径。


private void btnLoad_Click(object sender, EventArgs e)
{
    OpenFileDialog fileName = new OpenFileDialog();
    fileName.InitialDirectory = Application.StartupPath;
    fileName.Filter = "All files|*.pdf";
    if (fileName.ShowDialog() == DialogResult.OK)
    {
        string Path = fileName.FileName.ToString();
        textBox1.Text = Path;
    }
}
第3步:在 'Check'.按钮上输入以下代码。在这一部分,我们获取PDF文档中的所有签名,然后调用PdfSignature.VerifyDocModified()方法检测文档是否在签名后被修改。如果被修改则返回true,否则返回false。



private void btnCheck_Click(object sender, EventArgs e)
{
    //get signatures from PDF
    List signatures = new List();
    using (PdfDocument pdf = new PdfDocument(textBox1.Text))
    {
        PdfFormWidget form = pdf.Form as PdfFormWidget;
        for (int i = 0; i < form.FieldsWidget.Count; i++)
        {
            PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
            if (field != null && field.Signature != null)
            {
                PdfSignature signature = field.Signature;
                signatures.Add(signature);
            }
        }
        PdfSignature signatureOne = signatures[0];
        //detect if the PDF was modified
        bool modified = signatureOne.VerifyDocModified();
        if (modified == true)
        {
            MessageBox.Show("The document was modified");
        }
    }
}
运行程序并加载修改后的文档,点击  'Check'按钮后会得到以下输出结果。


完整代码:


private void btnLoad_Click(object sender, EventArgs e)
{
    OpenFileDialog fileName = new OpenFileDialog();
    fileName.InitialDirectory = Application.StartupPath;
    fileName.Filter = "All files|*.pdf";
    if (fileName.ShowDialog() == DialogResult.OK)
    {
        string Path = fileName.FileName.ToString();
        textBox1.Text = Path;
    }
}
private void btnCheck_Click(object sender, EventArgs e)
{
    //get signatures from PDF
    List signatures = new List();
    using (PdfDocument pdf = new PdfDocument(textBox1.Text))
    {
        PdfFormWidget form = pdf.Form as PdfFormWidget;
        for (int i = 0; i < form.FieldsWidget.Count; i++)
        {
            PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
            if (field != null && field.Signature != null)
            {
                PdfSignature signature = field.Signature;
                signatures.Add(signature);
            }
        }
        PdfSignature signatureOne = signatures[0];
        //detect if the PDF was modified
        bool modified = signatureOne.VerifyDocModified();
        if (modified == true)
        {
            MessageBox.Show("The document was modified");
        }
    }
}


扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP