Заполните форму PDF с помощью iTextSharp - добавьте изображение и сохраняйте его редактируемым

1

Я пытаюсь использовать iTextSharp для манипулирования заполняемым шаблоном формы pdf. Хорошим примером исходной формы будет IRS fillable W4 (хотя я буду создавать собственные формы в реальном решении): http://www.irs.gov/pub/irs-pdf/fw4.pdf

Мне нужно:

  1. Заполните некоторые элементы ввода, но не все
  2. Добавить некоторые метаданные в pdf
  3. Добавить образ штрих-кода в pdf
  4. Сгенерированная форма должна быть заполнена в Acrobat Reader

Я уже преодолел то, что, по-видимому, является общей проблемой, когда 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. Есть ли способ, которым я могу добавить изображение штрих-кода, которое не нарушает "расширенные функции"?

  • 1
    Вы добавляете штрих-код к обычному содержимому PDF. Это обычно ломает подпись. Вы могли бы попробовать некоторую аннотацию для этого.
Теги:
pdf
itextsharp

1 ответ

0
Лучший ответ

Чтобы дать ответ другим, @mkl правильный. Изменив "контент" pdf, подпись нарушена. Тем не менее, можно заполнить форму, добавить метаданные и добавить штрих-код в заполняемый PDF файл, если "расширенные функции чтения" не включены. Поскольку мы создаем наши собственные формы, это было правильное решение для нас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню