翻譯|行業資訊|編輯:胡濤|2024-01-29 13:20:45.930|閱讀 92 次
概述:在本文中,我們將介紹如何使用 Spire.PDF 檢測簽名的 PDF 是否被修改,歡迎查閱~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
對 PDF 文檔進行數字簽名后,PDF 將被鎖定以防止更改或允許檢測更改。在本文中,我們將介紹如何使用 Spire.PDF 檢測簽名的 PDF 是否被修改。
Spire.PDF for .NET 是一款獨立 PDF 控件,用于 .NET 程序中創建、編輯和操作 PDF 文檔。使用 Spire.PDF 類庫,開發人員可以新建一個 PDF 文檔或者對現有的 PDF 文檔進行處理,且無需安裝 Adobe Acrobat。
E-iceblue 功能類庫Spire 系列文檔處理組件均由中國本土團隊研發,不依賴第三方軟件,不受其他國家的技術或法律法規限制,同時適配國產操作系統如中科方德、中標麒麟等,兼容國產文檔處理軟件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下載 Spire.PDF for java下載
為了測試該功能,我們創建了一個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 :在“檢查”按鈕中輸入以下代碼。在這一部分中,我們獲取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"); } } }
運行程序并加載修改后的文檔,單擊“檢查”按鈕后您將得到以下輸出。
完整代碼:
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"); } } }
以上便是如使用 C# 檢測簽名的 PDF 是否被修改,如果您有其他問題也可以繼續瀏覽本系列文章,獲取相關教程,你還可以給我留言或者加入我們的官方技術交流群。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(767755948)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn