Как выполнить печать на бланке?

Рейтинг: 0Ответов: 1Опубликовано: 09.10.2014

Возникла задача (в целях обучения) спроектировать и разработать программу, печатающую данные на бланке (например, заполнение квитанции). Писать думаю на java, бланки в виде pdf, как исходный, так и формируемый с помощью программы (т.е. заполненный данными). В связи с этим всем заданием возникает ряд вопросов:

  1. как организовать работу в java с pdf-файлами?
  2. как организовать внесение (расположение) вводимых/сгенерированных данных в нужных полях бланка?

Буду очень признателен, если кто-то поделится опытом или дельными советами.

Ответы

▲ 1Принят

Посмотрите репортинговый движок JasperReports. Он умеет сколь угодно сложные бланки заполнять из произвольных источников данных и экспортировать и в PDF (довольно прилично) и в HTML (не pixel perfect, но сносно). Есть WYSIWYG редактор шаблонов отчетов (а-ля MS Access) - iReport.

Еще есть низкоуровневые библиотеки для работы с PDF. Но для вашей задачи они не удобны - PDF формируется "ручками" на подобии canvas-а: напиши абзац здесь, нарисуй линию тут, итп.

Еще есть iText. Он более документоориентирован и, наверное, лучше всех вам подойдет. Он коммерческий, но вроде бы есть вариант с лицензированием по AGPL.