Я пытаюсь использовать iTextSharp для манипулирования заполняемым шаблоном формы pdf. Хорошим примером исходной формы будет IRS fillable W4 (хотя я буду создавать собственные формы в реальном решении): http://www.irs.gov/pub/irs-pdf/fw4.pdf
Мне нужно:
Я уже преодолел то, что, по-видимому, является общей проблемой, когда PdfStamper должен быть создан для добавления в pdf - это отлично работает при заполнении входных данных форм и добавлении метаданных. Однако, если я добавлю изображение в PDF, это приведет к очень разочаровывающему сообщению
Этот документ включал расширенные функции в Adobe Reader. Документ был изменен с момента его создания, и использование расширенных функций больше не доступно. и т.д...
Из-за этого форма больше не может быть отредактирована в Acrobat Reader.
Вот пример высокого уровня кода:
PdfReader reader = new PdfReader(templateFile);
using (PdfStamper stamper = new PdfStamper(reader, new FileStream(outputFile, FileMode.Create), '\0', true))
{
// fill in some fields
AcroFields form = stamper.AcroFields;
form.SetField("Field1", "My Value");
form.SetField("Field2", "Another Value");
// add some metadata
Dictionary<String, String> info = reader.Info;
info.Add("SourceID", "1234567890");
stamper.MoreInfo = info;
// add a barcode image
PdfContentByte cb = stamper.GetOverContent(1);
Barcode39 code39ext = new Barcode39();
code39ext.Code = "1234567890";
code39ext.StartStopText = false;
code39ext.Extended = true;
iTextSharp.text.Image barcode = code39ext.CreateImageWithBarcode(cb, null, null);
barcode.ScalePercent(100);
barcode.SetAbsolutePosition(50, 500);
cb.AddImage(barcode)
stamper.Close();
}
Основной вопрос: Как уже упоминалось, части завершения поля и метаданные работают нормально. Однако добавление изображения штрих-кода нарушает "расширенные функции" pdf. Есть ли способ, которым я могу добавить изображение штрих-кода, которое не нарушает "расширенные функции"?
Чтобы дать ответ другим, @mkl правильный. Изменив "контент" pdf, подпись нарушена. Тем не менее, можно заполнить форму, добавить метаданные и добавить штрих-код в заполняемый PDF файл, если "расширенные функции чтения" не включены. Поскольку мы создаем наши собственные формы, это было правильное решение для нас.