使用iTextSharp自定义PDFStamper

时间:2011-02-07 17:22:39

标签: pdf itextsharp signing customization stamp

我正在使用iTextSharp来签署PDF。签名时,它会在文档上标记4个字段:签名人员,时间,原因和位置。我打算做的是在自定义信息的下方(或上面,无关紧要)添加一个字段。

任何想法?

这是生成图章的代码:

PdfStamper stp = PdfStamper.CreateSignature(reader, memoryOut, '\0');
        PdfSignatureAppearance sap = stp.SignatureAppearance;

        iTextSharp.text.Rectangle rectangle = new iTextSharp.text.Rectangle(100, 100, 500, 200);

        sap.SetVisibleSignature(rectangle, stp.Reader.NumberOfPages, null);
        sap.SignDate = DateTime.Now;
        sap.SetCrypto(null, chain, null, null);
        sap.Reason = ssReason;
        sap.Contact = ssContact;
        sap.Location = ssLocation;

        sap.Acro6Layers = true;
        //sap.SignatureGraphic = iTextSharp.text.Image.GetInstance(ssImageUrl);
        //sap.SignatureGraphic.ScaleToFit(131, 45);
        sap.Render = PdfSignatureAppearance.SignatureRender.Description;

1 个答案:

答案 0 :(得分:1)

有几个选择:

  1. PdfTemplate修改其中一个sap.getLayer(int)

  2. 致电sap.setLayer2Text()以包含您的额外信息。

  3. 使用图形。您可以将PdfTemplate包裹在Image中,这样您就可以绘制任何想要的内容。然后

    sap.Render = PdfSignatureAppearance.SignatureRender.GraphicAndDescription

  4. Hack the Source。