首页 > 解决方案 > 使用 PyPDF2 解压缩 PDF FlateDecode 过滤器注释

问题描述

我正在尝试使用以下代码通过 PyPDF2 提取 PDF 文件中超链接的目标或 uri,但我遇到了一些编码的目标。我试图通过filter.decodeStreamData();来解压它们。但是,我的结果仍然不可读:(

我无法解决问题,请帮助。

import PyPDF2
import zlib
from PyPDF2 import filters

PDFFile = open()

PDF = PyPDF2.PdfFileReader(PDFFile)
pages = PDF.getNumPages()
annotatn = '/Annots'
hyperlink = '/A'

ob = {'/URI', '/D'}


for page in range(pages):
    print("Current Page: {}".format(page+1))
    pageSliced = PDF.getPage(page)
    pageObject = pageSliced.getObject()

    if annotatn in pageObject.keys():
        i = 0
        for annot in pageObject[annotatn]:
            i = i + 1
            print("Link {}".format(i))
            ann = annot.getObject()
            if '/Dest' in ann.keys():
                dest = ann['/Dest'][0].getObject()
                data = dest['/Contents'].getObject()
                s = data._data
                contnt = filters.decodeStreamData(data)

            if hyperlink in ann.keys():
                links = ann[hyperlink]
                for link in links:
                    if link in ob:
                        print(ann[hyperlink][link])

标签: python-3.xpdffilterzlib

解决方案


推荐阅读