Настройте PDFStamper с помощью iTextSharp

Я использую 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 ответ

Решение

Несколько вариантов:

  1. изменить один из PdfTemplateс из sap.getLayer(int),

  2. вызов sap.setLayer2Text() включить вашу дополнительную информацию.

  3. Используйте графику. Вы можете обернуть PdfTemplate в Image, так что вы можете нарисовать все, что вы хотите. затем

    sap.Render = PdfSignatureAppearance.SignatureRender.GraphicAndDescription

  4. Взломать источник.

Другие вопросы по тегам