我正在开发一个Web应用程序(使用Grails),它将生成一个礼券。我正在考虑这样的工作流程:
用户将选择一个将存储为图像的模板。
然后文本(名称,日期,金额等)将叠加在图像上以制作最终证书。每个模板都有一组坐标,用于描述每个文本的放置位置。
浏览器中有一种“实时预览”,向用户显示最终证书的样子。
当用户对结果感到满意时,他们会将证书下载为PDF并打印出来。
有人可以推荐一个Java(或Groovy)库,这样可以很容易地做到这一点吗?我并不特别担心速度,因为我怀疑webapp一次只会被少数人使用。
更新:最后我使用iText PDF库使用PDFStamper在PDF模板上叠加文本。
答案 0 :(得分:4)
您可以使用标准Java 2D图形库执行此操作 - 从图像get its Graphics创建BufferedImage并使用drawString()将文本放在顶部。当然,文本将成为生成的PDF中位图的一部分,而不是使用完整的打印分辨率。
答案 1 :(得分:1)
除了上面的答案,我还遇到了groovy库GraphicsBuilder和Grails插件j2D,它们也是主要的解决方案。
答案 2 :(得分:0)
您可以考虑使用Batik来执行此操作作为SVG。您的图片将是< img>标签和您的文字将是一个或多个< text>标签。有一个转换器(我相信称为FOP)将为您提供PDF输出。