IIRC, есть событие предварительной печати на уровне документа, которое вы можете подключить с помощью javaScript.
1) Поместите поле с одинаковым именем на каждой странице вашего PDF.1005 * 2) В событии перед печатью запросите у пользователя значение этого поля, затем установите для этого поля значение.
Необходимо создать словарь дополнительных действий в каталоге документов.В Акробате довольно хорошо похоронен.Дополнительно-> Обработка документов-> Установить действия с документами.Вы хотите событие «Будет печатать»:
var response = app.response( questionText/*, dialogTitle, defaultVal, bPassword, entryLabel*/ );
this.getField( "thatFieldName" ).value = response;
Не так много.Чтобы сделать это программно в iText (мой личный фаворит, нету вообще нет предвзятости;)
PdfReader reader = new PdfReader( "myFile.pdf" );
PdfStamper stamper = new PdfStamper( myReader, outStream );
PdfWriter stamperWriter = stamper.getWriter();
stamperWriter.setAdditionalAction( PdfName.WP, PdfAction.javaScript( scriptString, stamperWriter ) );
stamper.close();