【问题标题】:Updated pdf fields don't show up when page is written写入页面时不显示更新的 pdf 字段
【发布时间】:2019-07-16 16:39:04
【问题描述】:

我使用Pythonpdfrw 更新了pdf 字段并创建了一个新的pdf。但是当我用 Adob​​e Reader 打开它时,更新的字段没有显示出来。但是,这些字段可以通过手动点击显示。

我已经尝试过代码 pdf.Root.AcroForm.update(pdfrw.PdfDict(NeedAppearances=pdfrw.PdfObject('true'))).确实添加了属性NeedAppearances,但是并没有解决问题。

我的代码

def write_fillable_pdf(input_pdf_path, output_pdf_path, data_dict):
    try:
        pdf = pdfrw.PdfReader(input_pdf_path)
        for page in pdf.pages:
            annotations = page['/Annots']
            if annotations != None:
                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]))) 
        pdf.Root.AcroForm.update(pdfrw.PdfDict(NeedAppearances=pdfrw.PdfObject('true'))) 
        print (pdf.Root.AcroForm)
        output_pdf = output_pdf_path 
        pdfrw.PdfWriter().write(output_pdf, pdf)
    except ValueError:
        pass

我希望显示这些字段。

【问题讨论】:

    标签: python pdfrw


    【解决方案1】:

    您可以使用annotation.update(pdfrw.PdfDict(AP=data_dict[key],V=data_dict[key])),如果您添加Ff=1,那么您将在只读模式下创建PDF,这意味着您无法对其进行编辑。

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2021-05-02
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多