从原始用户输入生成PDF表单(Python)

时间:2011-10-12 06:39:26

标签: python forms pdf document generator

所以我是一名兼职工作的大学生 - 但我确实有一些Python经验。无论如何,我以为我会尝试通过制作表单生成器来打动我的老板。我的工作是在卡丁车的地方,我们需要人们填写一堆安全信息,所以我的目标是将它作为一个GUI或网页在计算机上,我们只是写下他们的名字和其他细节,它我们只需要签署一份包含他们所有信息的表格。

我看了一眼,注意到有很多工具,但我不确定它们是否明确是我想要的 - 看起来都很复杂。

我之前制作了一个简单的GUI,但理想情况下我只是让它们在.html页面上进行。

有人可以就如何解决这个问题向我提出一些建议吗?

谢谢!

聚苯乙烯。我知道这个地方主要用于代码,所以如果我通过制作这种帖子来打破礼仪,我会道歉。

2 个答案:

答案 0 :(得分:2)

您可以使用reportlab,这是tutorial。 它可以与easy_install

一起安装

答案 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