用数据和图像填充PDF表单

问题描述

我的目标是在现有的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的作者。)