какая библиотека Java / Groovy для наложения текста на изображение - PullRequest
3 голосов
/ 28 октября 2009

Я работаю над веб-приложением (использующим Grails), которое сгенерирует подарочный сертификат. Я думаю о рабочем процессе, подобном этому:

  1. Пользователь выберет шаблон, который будет сохранен в виде изображения.

  2. Затем текст (имя, дата, сумма и т. Д.) Будет наложен на изображение для получения окончательного сертификата. Есть набор координат, связанных с каждым шаблоном, который описывает, куда поместить каждый бит текста.

  3. В браузере есть своего рода «предварительный просмотр», который показывает пользователю, как будет выглядеть окончательный сертификат.

  4. Когда пользователь доволен результатами, он загружает сертификат в формате PDF и распечатывает его.

Кто-нибудь может порекомендовать библиотеку для Java (или Groovy), которая облегчит это? Меня не особо беспокоит скорость, так как я подозреваю, что веб-приложение будет использоваться только несколькими людьми одновременно.

ОБНОВЛЕНИЕ: в конце концов я использовал библиотеку iText PDF для наложения текста на шаблон PDF с помощью PDFStamper.

Ответы [ 3 ]

4 голосов
/ 28 октября 2009

Вы можете сделать это со стандартными библиотеками Java 2D-графики - создайте BufferedImage из изображения, получите его Graphics и используйте drawString () , чтобы поместить текст сверху. Разумеется, тогда текст будет частью растрового изображения в результирующем PDF-файле и не будет использовать полное разрешение печати. ​​

1 голос
/ 29 октября 2009

В дополнение к ответам выше я натолкнулся на отличную библиотеку GraphicsBuilder и плагин Grails j2D , которые также являются потенциальными решениями.

0 голосов
/ 28 октября 2009

Вы можете использовать Batik , чтобы сделать это в качестве SVG. Ваше изображение будет тегом image, а текст - одним или несколькими тегами . Есть конвертер (я думаю, что FOP), который даст вам вывод PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...