Настройте PDFStamper с помощью iTextSharp - PullRequest
2 голосов
/ 07 февраля 2011

Я использую 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 голос
/ 10 февраля 2011

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

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

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

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

    sap.Render = PdfSignatureAppearance.SignatureRender.GraphicAndDescription

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

...