Разархивируйте PDF Аннотации фильтра FlateDecode с помощью PyPDF2 - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь использовать следующий код для извлечения места назначения или URI гиперссылки в файле PDF через PyPDF2, но я столкнулся с некоторыми закодированными местами назначения. Я пытался распаковать их на 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])
...