微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pdfrw 重复字段标签不显示

如何解决pdfrw 重复字段标签不显示

所以我有 1 个包含 3 个表单的文件,但其中 2 个使用完全相同的字段并具有相同的标签字段。示例:Name1 = 表单 1 的名称,Name1 = 表单 2 的名称。第三个将 Name3 作为名称。这是因为前 2 个表单一个用户保留,另一个供供应商使用。出于某种原因,只有第 3 个会填充标签,前 2 个表单没有任何显示。这是我的代码

class PDFKeyMappings:
    ANNOT_KEY = '/Annots'
    ANNOT_FIELD_KEY = '/T'
    ANNOT_VAL_KEY = '/V'
    ANNOT_RECT_KEY = '/Rect'
    SUBTYPE_KEY = '/Subtype'
    WIDGET_SUBTYPE_KEY = '/Widget'
    PARENT_WIDGET_NUM = '/Parent'

with open(template_filename,"rb") as pdf:  
    tags = pdf_forms_helpers.check_template_tags(pdf,tags)

这是我的辅助函数

def check_template_tags(template_pdf,tags):

    def search_pdf_tags(pdf_tags):
        for tag,tag_data in list(pdf_tags.items()):
            print("tag items are: ",list(pdf_tags.items()))
            pdf_tags[tag]["is_used"] = (f"{tag}" in extracted_fields)
            
            if tag_data.get("child_nodes"):
                search_pdf_tags(tag_data["child_nodes"])

    output_pdf = update_annotation_key(template_pdf)
    pdf_reader = pdfrw.PdfReader(output_pdf)
    extracted_fields = []

    for page in range(len(pdf_reader.pages)):
        annotations = pdf_reader.pages[page][PDFKeyMappings.ANNOT_KEY]
        if not annotations:
            continue
        for annotation in annotations:
            if annotation[PDFKeyMappings.SUBTYPE_KEY] != PDFKeyMappings.WIDGET_SUBTYPE_KEY or not annotation[PDFKeyMappings.ANNOT_FIELD_KEY]:
                continue
            extracted_fields.append(annotation[PDFKeyMappings.ANNOT_FIELD_KEY][1:-1].lower())

    search_pdf_tags(tags)
    print("tags being returned are: ",tags)
    return tags 

这是for循环后的打印内容

tag items are: [('Name1',{'is_used': False}),('Name3',{'is_used': False})]

这是返回标签的打印内容

tags being returned are: {'Name1': {'is_used': False},'Name3': {'is_used': True}}

我现在发现的问题是提取的字段没有提取重复的值。对于注释循环中的注释是我需要弄清楚的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。