使用 iTextSharp 自定义 PDFStamper

发布于 2024-10-16 16:15:39 字数 888 浏览 7 评论 0原文

我正在使用 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;

I'm using iTextSharp to sign PDFs. When signing, it stamps the document with 4 fields: who signed, when, reason and location. What I meant to do is to add a field below (or above, that doesn't matter) with custom information.

Any Idea?

Here's my code that is generating the stamp:

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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

话少情深 2024-10-23 16:15:39

几个选项:

  1. 修改 sap.getLayer(int) 中的 PdfTemplate 之一。

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

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

    sap.Render = PdfSignatureAppearance.SignatureRender.GraphicAndDescription

  4. 破解源代码。

Several options:

  1. modify one of the PdfTemplates from sap.getLayer(int).

  2. call sap.setLayer2Text() to include your extra information.

  3. Use a graphic. You can wrap a PdfTemplate in an Image, so you can draw anything you want. Then

    sap.Render = PdfSignatureAppearance.SignatureRender.GraphicAndDescription

  4. Hack The Source.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文