2015-12-13 2 views
0

Я хотел бы поместить изображение в цифровой формат PDF. если я делаю это обычным способом, подпись нарушена. Но с Acrobat можно добавить отметку аннотации к подписанному PDF-файлу, и подпись не будет нарушена.Добавить изображение в PDF с цифровой подписью с itextSharp

Googgling Я нашел пример того, как сделать это:

http://itext.2136553.n4.nabble.com/Digital-Signature-Corrupted-after-adding-watermark-image-td4657457.html

Я перевести его на C#, но без успеха:

using (Stream inputPdfStream = new FileStream("test.pdf", FileMode.Open, FileAccess.Read, FileShare.Read)) 
using (Stream inputImageStream = new FileStream("grafo.jpg", FileMode.Open, FileAccess.Read, FileShare.Read)) 
using (Stream outputPdfStream = new FileStream("result.pdf", FileMode.Create, FileAccess.Write, FileShare.None)) 
{ 
    var reader = new PdfReader(inputPdfStream); 
    var stamper = new PdfStamper(reader, outputPdfStream); 

    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream); 
    image.SetAbsolutePosition(0, 0); 

    PdfTemplate template = PdfTemplate.CreateTemplate(stamper.Writer, image.Width, image.Height); 
    template.AddImage(image); 

    iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(350, 250, 350 + image.Width, 250 + image.Height); 

    PdfAnnotation annotation = PdfAnnotation.CreateStamp(stamper.Writer, rect, null, Guid.NewGuid().ToString()); 
    annotation.SetAppearance(PdfName.N, template); 
    stamper.AddAnnotation(annotation, 1); 
    stamper.Close(); 
} 

Когда я открываю PDF с Акробат, подпись сломана.

Некоторые идеи о том, как это сделать с iText?

Спасибо-х

+0

Если @ ответ Пауло решил проблему, пожалуйста * * принять это, то нажмите на клеща в его левом верхнем углу. – mkl

ответ

2

PdfStamper должны быть созданы в режиме добавления.

var stamper = new PdfStamper(reader, outputPdfStream, '\0', true);

+0

Спасибо @Paulo Soares !. –

Смежные вопросы