问题描述
我的目标是在现有的PDF交互式表单中填充用户数据。
对此的要求是:
- 它应该能够将数据插入文本字段;
- 它应该能够在XY位置插入图像。
我发现FillablePDF gem用于将数据插入交互式PDF表单中。但是,找不到我是否可以插入图像。
我发现Prawn gem用于插入图像。
仅使用FillablePDF gem有没有更好的方法或解决方案?
解决方法
您可以使用HexaPDF的最新版本来完成这两项任务,该版本已获得对AcroForm交互式表单的支持。 HexaPDF是一个纯Ruby PDF操作和创建库,因此您不需要像FillablePDF那样依赖iText和Java。
您的任务的代码应如下所示:
require 'hexapdf'
doc = HexaPDF::Document.open(input_pdf_file)
doc.acro_form.field_by_name('Name of text field').field_value = 'New value'
doc.pages[0].canvas(type: :overlay).image(image_file,at: [x,y])
doc.write('output.pdf')
请注意,如果这是用于商业项目,则很可能需要commercial license的HexaPDF。
或者,将Prawn与prawn-blank宝石一起使用也应该起作用。
(Nota bene:我是HexaPDF的作者。)