заполнение полей PDF с использованием Itext - PullRequest
0 голосов
/ 01 мая 2018

Источник

try { 
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outname)); 
    AcroFields fields = stamper.getAcroFields();

    // fields.get("Your Company Name:", "Changed");
    // fields.get("Project Notes:", "Changed");

    fields.setField("Your Company Name:", "Changed");
    fields.setField("Project Notes:", "Blah...Blah");
    Set<String> fldNames = fields.getFields().keySet();
    for (String fldName : fldNames) {
        System.out.println( fldName + ": " + fields.getField( fldName ) );
    }     

    stamper.close();

выход

Название вашей компании: Ваше имя: Адресная строка 1: Адресная строка 2: Город, штат, почтовый индекс: Имя клиента: Идентификатор счета: Клиент: Адресная строка 1: Дата выдачи: Клиент: Адресная строка 2: Номер заказа: Клиент : Город, штат, почтовый индекс: Дата исполнения: Тема: Элемент 1: Описание: Элемент 1: Количество: Элемент 1: Цена за единицу: Элемент 1: Количество: 0 Элемент 2: Описание: Элемент 2: Количество: Элемент 2: Цена за единицу : Элемент 2: Количество: 0 Элемент 3: Описание: Элемент 3: Количество: Элемент 3: Цена за единицу: Элемент 3: Количество: 0 Элемент 4: Количество: Элемент 4: Цена за единицу: Элемент 4: Количество: 0 Элемент 4: Описание : Позиция 5: Количество: Позиция 5: Цена за единицу: Позиция 5: Количество: 0 Позиция 5: Описание: Позиция 6: Количество: Позиция 6: Цена за единицу: Позиция 6: Количество: 0 Позиция 6: Описание: Итого: 0 Скидка: Задолженность: 0 Примечания к проекту: забрано _JAVA_OPTIONS: -Xmx512M

Я ожидал, что значение Your Company Name: будет изменено, а значение поля Project Notes: будет "Blah...Blah"

.

Я запускал этот код в нескольких других проектах, но по какой-то причине он не работает.

Окружающая среда

JARS - Itext 5.5.10, 5.4.1 env - Eclipcse (Kleeper) 
last modified - May 1, 2018 at 11:43:26 AM

Я думаю, что долго смотрел разные версии проекта. Я посмотрел похожие вопросы, и они использовали setAttributes, и это тоже не сработало. Также я запустил код с в полях. получить код без комментария и получить ошибку компиляции - получить строку, не определенную для типа Acrofields.

Также есть простой способ увеличить длину значения Your Company Name при создании нового файла PDF. В настоящее время его 21, я хотел бы, чтобы он составлял около 30 символов.

1 Ответ

0 голосов
/ 01 мая 2018

Вы печатаете

System.out.println( fldName + ": " + fields.getField( fldName ) );}     

Таким образом, на выходе

Your Company Name: 
Your Name: 
[...]

(по крайней мере, я предполагаю, что разрывы строк есть, вы отбросили их в тексте своего вопроса)

указывает, что имена полей "Your Company Name" и "Your Name", а не "Your Company Name:" и "Your Name:" и т. Д.

Таким образом, вы должны удалить двоеточия из поля настроек вызовов

fields.setField("Your Company Name:", "Changed");
fields.setField("Project Notes:", "Blah...Blah");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...