Здесь есть несколько вариантов.
1) FDF, Формат данных формы .И это ужасный документ спецификации, он охватывает только небольшую (редко используемую, сложную) часть формата FDF.Файлы FDF довольно просты в создании и содержат кучу пар поле / значение (и могут содержать параметры списка и другие более интересные вещи, которые вам не понадобятся) и сопоставление файлов.Открытие FDF заполняет PDF (через сопоставление файлов с acrobat / reader).
Вот пример (с дополнительным пробелом, чтобы сделать его более читабельным):
%FDF-1.2
1 0 obj
<< /FDF
<< /Fields [
<< /V (Communications Co.)/T (Address1)>>
<< /V (29 Communications Road)/T (Address2)>>
<< /V (Busyville)/T (City)>>
<< /V (USA)/T (Country)>>
<< /V (24 January 2000)/T (Date)>>
<< /V (Suzie Smith)/T (Name)>>
<< /V (\(807\) 221-9999)/T (PhoneNumber)>>
<< /V (777-11-8888)/T (SSN)>>
<< /V (NJ)/T (State)>>
]
/F (TestForm.pdf)
>>
>>
endobj
trailer
<<
/Root 1 0 R
>>
%%EOF
"/ V"указывает значение поля, "/ T" - заголовок поля.«/ F» - это путь к форме, которую нужно заполнить.
Существует множество продуктов с поддержкой слияния, которые могут принимать FDF и PDF и создавать заполненную форму PDF.Вышеупомянутый iText (и некоторые другие) могут делать это программно, другие приложения имеют командные строки.
Любая страница, которую, возможно, потребуется повторить, должна иметь свою собственную форму в этой среде.Слияние форм может быть довольно сложным.Есть пара подходов, самый простой из которых состоит в том, чтобы «сгладить» поля, чтобы они были просто содержимым страницы (штриховой рисунок и текст) ... тогда вы больше не объединяете PDF-формы.
Конечно, если вы можете контролировать порядок печати, вам не нужно вообще объединять формы.Вы можете просто открыть / распечатать их в правильном порядке.
Насколько я помню, пакетные команды Acrobat Pro могут импортировать данные FDF и печатать.Все, что вам нужно сделать, это сгенерировать соответствующие файлы FDF, что в основном является тривиальным построением строк.
Использование FDF предполагает, что у вас уже есть PDF-формы, просто ожидающие заполнения.Если это не так ...
2) Создайте PDF-формы программно.Я делаю это с помощью iText (Java-основа iTextSharp), хотя существует довольно много библиотек, доступных на разных языках.iText [Sharp] лицензируется в соответствии с AGPL (или коммерчески).С AGPL любой, имеющий доступ к вашему OUTPUT, должен иметь доступ к источнику вашего приложения.AGPL такой же «вирусный», как и обычный GPL.Более старые версии были доступны под MPL.
Учитывая, что это сугубо внутреннее и вы будете печатать PDF-файлы, лицензирование не представляет особой проблемы.
Было бы значительно эффективнее сгенерировать шаблоны форм один раз.затем заполните их ... напрямую или через FDF.