所以我是一名兼职工作的大学生 - 但我确实有一些Python经验。无论如何,我以为我会尝试通过制作表单生成器来打动我的老板。我的工作是在卡丁车的地方,我们需要人们填写一堆安全信息,所以我的目标是将它作为一个GUI或网页在计算机上,我们只是写下他们的名字和其他细节,它我们只需要签署一份包含他们所有信息的表格。
我看了一眼,注意到有很多工具,但我不确定它们是否明确是我想要的 - 看起来都很复杂。
我之前制作了一个简单的GUI,但理想情况下我只是让它们在.html页面上进行。
有人可以就如何解决这个问题向我提出一些建议吗?
谢谢!
聚苯乙烯。我知道这个地方主要用于代码,所以如果我通过制作这种帖子来打破礼仪,我会道歉。
答案 0 :(得分:2)
答案 1 :(得分:0)
作为从头开始在代码中生成整个pdf的替代方法(例如,使用如前所述的reportlab,这是一个非常合理的解决方案,并且reportlab是执行此操作的出色库),您可以填写由生成的现有pdf表单一些编辑软件(例如单词或类似的东西-我使用Scribus NG ..但这是学习的噩梦,我不建议临时用户使用它。)
填写现有表单的优点是您可以对表单使用适当的编辑工具,从而可以更轻松地创建外观更专业的表单(也可以由图形设计师进行编辑)。缺点是它有点复杂,而且不是纯Python解决方案。
您可以通过创建一个fdf文件并从python执行一个名为pdftk的外部工具来填写表格。编写fdf文件是一项练习,我让您自己做! fdf基本上是键值列表,其中键是表单字段ID(即表单ID中的文本字段),而值是写入该字段的值。
如果您想以这种方式进行操作,建议您首先手动编写fdf文件,然后手动运行pdftk ..使它工作,然后使用python进行自动化。这不是一个很好的解决方案,但结果确实不错。
这是我用来执行pdftk的代码,它将有助于正确设置命令行语法。
def pdftk(pdf_in, fdf_in, pdf_out):
"""
Run pdftk to fill in pdf_out from the pdf form template and data given.
(only tested on linux)
"""
cmd_line = [pdftk_executable,
pdf_in,
"fill_form",
fdf_in,
"output",
pdf_out,
"verbose"]
# print " ".join(cmd_line)
try:
pdftk_output = subprocess.check_output(cmd_line)
except subprocess.CalledProcessError as e:
pdftk_output = e.output
pdftk_error = True
return