【发布时间】:2019-03-05 07:40:12
【问题描述】:
如何“展平” PDF 表单?我有一个 PDF 表格需要填写。我有一个简单的例子,其中 TEMP_FORM.pdf 是 from,data_dict 是要填写在 TEMP_FORM.pdf 中的值。输出文件保存为 FORM1.pdf 但仍可编辑我需要展平该文件以便无法编辑该值。
from PyPDF2 import PdfFileReader, PdfFileWriter
TEMPLATE_PATH = 'TEMP_FORM.pdf'
OUTPUT_PATH = 'FORM1.pdf'
data_dict = {
'name': 'XYZ',
'address': 'PQR',
'email': 'xyz@gmail.com',
'send_date': '2018-02-13',
'due_date': '2018-03-13'
}
if __name__ == '__main__':
input_file = PdfFileReader(open(TEMPLATE_PATH, "rb"))
output_file = PdfFileWriter()
output_file.addPage(input_file.getPage(0))
output_file.updatePageFormFieldValues(output_file.getPage(0), data_dict)
output_stream = open(OUTPUT_PATH, "wb")
output_file.write(output_stream)
output_stream.close()
【问题讨论】:
-
你能解释一下这里的“扁平化”是什么意思吗?示例输入和输出会有所帮助。谢谢
-
使用 PDF 可填写表单时,用户必须在填写完表单字段后锁定或“展平” PDF 文档,以确保可以在所有设备上查看文档并防止其他用户操作或编辑信息。在CM/ECF中归档和存储的文件一旦归档就不能更改;但是,拼合表单将阻止任何用户保存文档和编辑表单字段。
-
我认为这个问题需要一些重组。该代码示例是关于以编程方式填写 pdf 表单。但是在您的评论中,您谈论的是用户编辑文件,大概是手动的。阻止用户保存文件肯定是用户正在使用的服务的属性吗? PdfFileWriter 的文档:pythonhosted.org/PyPDF2/PdfFileWriter.html 没有谈到锁定文件。不过,有一种编写元数据的方法,可能是您正在寻找的?总而言之,我认为这个问题需要更新才能更具体。谢谢