【问题标题】:How to make a pdf non editable using python library pdfrw如何使用 python 库 pdfrw 使 pdf 不可编辑
【发布时间】:2019-11-17 19:36:43
【问题描述】:

我正在使用 pdfrw python 库从网络表单中填充 pdf 字段。然后我必须将它传递给电子签名网络服务,但他们希望 pdf 不可编辑(展平)。

我尝试使用 Adob​​e 将其展平,它可以工作,但我无法通过我的 python 代码填充它..

import pdfrw

template_pdf = pdfrw.PdfReader(input_pdf_path)
    annotations = template_pdf.pages[0]['/Annots']
    for annotation in annotations:
        if annotation['/Subtype'] == '/Widget':
            if annotation['/T']:
                key = annotation['/T'][1:-1]
                if key in data_dict.keys():
                    annotation.update(
                        pdfrw.PdfDict(V='{}'.format(data_dict[key]))
                    )
template_pdf.Root.AcroForm.update(pdfrw.PdfDict(NeedAppearances=pdfrw.PdfObject('true')))
pdfrw.PdfFileWriter().write(output_pdf_path, template_pdf)

我的想法是在填充后使用 pdfrw 将 pdf 展平,但我真的不知道怎么做。如果有人遇到过这个问题并有解决方案,对我有很大帮助。

【问题讨论】:

    标签: python adobe pdfrw


    【解决方案1】:
    if key in data_dict.keys():
        annotation.update(pdfrw.PdfDict(V='{}'.format(data_dict[key])))
        annotation.update(pdfrw.PdfDict(Ff=1)) # This set the annotation as as not editable
    

    【讨论】:

    • 请添加有关此代码如何帮助 OP 的更多信息。
    • 我遇到了类似的问题。使用 Ff=1 标志确实将注释设置为只读但并非对所有查看者。例如,在 Foxit Reader 上可以使用,但在 MacOS Preview 上仍然可以编辑这些字段。有解决办法吗?
    猜你喜欢
    • 2019-06-14
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    相关资源
    最近更新 更多