• <menu id="w2i4a"></menu>
  • logo Aspose.PDF for .NET開發(fā)者使用教程

    文檔首頁>>Aspose.PDF for .NET開發(fā)者使用教程>>PDF管理控件Aspose.PDF for .Net使用教程(三十二):數(shù)字簽名PDF文件

    PDF管理控件Aspose.PDF for .Net使用教程(三十二):數(shù)字簽名PDF文件


    Aspose.PDF for .NET是一種高PDF處理和解析API,用于在跨平臺應用程序中執(zhí)行文檔管理和操作任務。API可以輕松用于生成、修改、轉換、渲染、保護和打印PDF文檔,而無需使用Adobe Acrobat。此外,API還提供PDF壓縮選項,表格創(chuàng)建和操作,圖形和圖像功能,廣泛的超鏈接功能,印章和水印任務,擴展的安全控制和自定義字體處理。

    在接下來的系列教程中,將為開發(fā)者帶來Aspose.PDF for .NET的一系列使用教程,例如進行文檔間的轉換,如何標記PDF文件,如何使用表單和圖表等等。本文將介紹如何對PDF文件進行數(shù)字簽名。

    >>Aspose.PDF for .NET更新至最新版v20.4,歡迎下載體驗。


    數(shù)字簽名PDF文件

    用于.NET的Aspose.PDF支持使用SignatureField該類對PDF文件進行數(shù)字簽名的功能。當然也可以使用PKCS12證書來認證PDF文件。

    使用簽名對PDF文檔簽名時,基本上可以“按原樣”確認其內(nèi)容。因此,之后進行的任何其他更改都會使簽名無效,所以,將知道文檔是否被更改。鑒于首先對文檔進行認證,我們可以指定用戶可以在不使認證無效的情況下對文檔進行的更改。換句話說,仍將文檔視為保留其完整性,并且收件人仍可以信任該文檔。

    為了滿足上述要求,已對以下公共API進行了更改。

    • 添加DocMDPSignature類
    • 添加DocMDPAccessPermissions枚舉
    • IsCertified屬性添加到PdfFileSignature類
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    string pbxFile = "";
    string inFile = dataDir + @"DigitallySign.pdf";
    string outFile = dataDir + @"DigitallySign_out.pdf";
    using (Document document = new Document(inFile))
    {
        using (PdfFileSignature signature = new PdfFileSignature(document))
        {
            PKCS7 pkcs = new PKCS7(pbxFile, "WebSales"); // Use PKCS7/PKCS7Detached objects
            DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
            System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
            // Set signature appearance
            signature.SignatureAppearance = dataDir + @"aspose-logo.jpg";
            // Create any of the three signature types
            signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
            // Save output PDF file
            signature.Save(outFile);
        }
    }
    
    using (Document document = new Document(outFile))
    {
        using (PdfFileSignature signature = new PdfFileSignature(document))
        {
            IList<string> sigNames = signature.GetSignNames();
            if (sigNames.Count > 0) // Any signatures?
            {
                if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
                {
                    if (signature.IsCertified) // Certified?
                    {
                        if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
                        {
                            // Do something
                        }
                    }
                }
            }
        }
    }

    使用時間戳服務器對PDF進行數(shù)字簽名

    用于.NET的Aspose.PDF支持使用時間戳服務器或Web服務對PDF進行數(shù)字簽名。為了實現(xiàn)此要求,TimestampSettings已將該類添加到Aspose.PDF命名空間中。

    請查看下面的代碼片段,該代碼片段獲得了時間戳并將其添加到PDF文檔中。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    string pfxFile = "";
    using (Document document = new Document(dataDir + @"DigitallySign.pdf"))
    {
        using (PdfFileSignature signature = new PdfFileSignature(document))
        {
            PKCS7 pkcs = new PKCS7(pfxFile, "pfx_password");
            TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
            pkcs.TimestampSettings = timestampSettings;
            System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
            // Create any of the three signature types
            signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
            // Save output PDF file
            signature.Save(dataDir + "DigitallySignWithTimeStamp_out.pdf");
        }
    }

    還想要更多嗎?您可以點擊閱讀
    【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();