在最后一页上签署PDF文件

时间:2013-06-20 15:50:33

标签: c# pdf itextsharp digital-signature

我正在使用C#和iTextSharp 3.1来签署PDF文件。签名工作正常,但我想在文件的最后一页上签名。我使用的代码是这样的:

            reader = new PdfReader(inputPDF);
            int numberOfPages = reader.NumberOfPages;
            PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true);

            PdfSignatureAppearance sap = st.SignatureAppearance;
            if (logoSign != null)
            {
                // Scale img to fit
                logoSign.ScaleToFit(100, 50);
                // Set Signature position on page
                logoSign.SetAbsolutePosition(300, 80);
                sap.Image = logoSign;
            }

            sap.SetCrypto(this.myCert.Akp, this.myCert.Chain, null, PdfSignatureAppearance.VERISIGN_SIGNED);
            if (SigReason.Length > 0)
                sap.Reason = SigReason;
            if (SigContact.Length > 0)
                sap.Contact = SigContact;
            if (SigLocation.Length > 0)
                sap.Location = SigLocation;
            if (visible)
                sap.SetVisibleSignature(mySignRect, 1, null);

            try
            {
                st.Close();
            } catch(Exception e) { }

此代码表示文件的第1页。我想要在文件的最后一页上签名。如何设置在最后一页上签名。 我也想知道,相同的代码在iTextSharp5.4.2中不起作用。它在sap.SetCrypto()和st.Close()上出错。任何想法如何让它在5.4.2中工作。

由于

1 个答案:

答案 0 :(得分:1)

请尝试mkl引用的白皮书附带的C#版本示例:http://sourceforge.net/p/itextsharp/code/HEAD/tree/tutorial/signatures/