在R中填写PDF表单?

7
我正在寻找一种自动化R中的PDF表单填写方法。我找不到一个已经写好的包来实现这个功能。是否有其他选择?
下面是我能想到的解决方案:
1. 使用R将包含文本的PDF覆盖在空白的PDF模板上。 2. 使用R生成一个FDF文件,该文件可以被其他软件或使用不同语言编写的代码读取。
Python似乎可以实现所有这些功能。然而,我的组织机构倾向于使用R,并且过去一直依靠软件开发人员编写C#来填写表格。我希望使用R跳过这一步骤。
谢谢!

1
相关帖子?https://dev59.com/0WUp5IYBdhLWcg3wRF6c 在循环中创建多个PDF。 - zx8754
@zx8754 那个线程似乎与不同的问题相关。 在我的情况下,我不需要循环多个PDF生成。 相反,我需要在API调用时自动生成一个PDF,并且该PDF具有由内置于PDF中的表单指定的精确参数。 这有意义吗? - ADF
1个回答

4

staplr包现在通过get_fieldsset_fields函数支持此功能。请注意,为了使其工作,必须安装pdftk服务器并将其添加到您的路径中。

get_fields从PDF文件中返回字段及其类型的列表,可以进行修改。

set_fields允许您根据自己的修改填写表单。以下是示例代码:

pdfFile = system.file('testForm.pdf',package = 'staplr')

fields = get_fields(pdfFile)
# You'll get a list of fields that the pdf contains 
# along with some additional information about the fields.

# You make modifications in any of the fields by
fields$TextField1$value = 'this is text'

# and apply the changes you have made in a new file
set_fields(pdfFile, 'newFile.pdf', fields)

注意: 目前 github 版本的 staplr 有一些修复措施,还未被纳入 CRAN ,这些修复措施会影响 staplr 对非英文字母的写入能力。为了获得最佳体验,建议您通过以下方式进行安装

devtools::install_github('pridiltal/staplr')

你能指导我在Windows上安装pdftk服务器并将其连接到R吗? - Pablo Boswell
3
您只需要下载它并将其放在您的PATH中的某个位置,或将其添加到您的PATH中。您可以从“高级系统设置”->“环境变量”->“系统变量”->“路径”更改路径。这是针对Windows 8/10的。 - OganM
嘿@OganM,我尝试使用您建议的软件包staplr,但是出现了一些错误。我在Stackoverflow上发布了一个问题。您能否给出建议?这是链接:https://stackoverflow.com/questions/69921405/find-keys-and-values-in-a-pdf-with-r - Beginner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接