文檔半島外圍網上直營>>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");
        }
    }
}
	

 QQ交談
QQ交談 在線咨詢
在線咨詢 
                 
                
 渝公網安備
            50010702500608號
渝公網安備
            50010702500608號
             
            
 客服熱線
客服熱線