相关疑难解决方法(0)

是否存在以编程方式从PDF中删除密码的库?

是否存在将从PDF文档中删除"所有者"密码的库,以便可以以编程方式从中提取文本?像PDF技术的密码恢复工具,但可以从命令行或从Python调用.GUI界面对我来说并不实用,因为文档的数量太大了.

请不要对流程的合法性发表评论.所涉及的PDF是拥有的,并且需要提取文本以形成文档集的关键字云.

python pdf passwords pdf-generation

8
推荐指数
1
解决办法
5886
查看次数

PDFminer:PDFTextExtractionNotAllowed错误

我试图从pdfs中提取文本我已经从互联网上删除了,但当我尝试下载它们时,我收到错误:

File "/usr/local/lib/python2.7/dist-packages/pdfminer/pdfpage.py", line 124, in get_pages
    raise PDFTextExtractionNotAllowed('Text extraction is not allowed: %r' % fp)
PDFTextExtractionNotAllowed: Text extraction is not allowed <cStringIO.StringO object at 0x7f79137a1ab0>
Run Code Online (Sandbox Code Playgroud)

我检查了stackoverflow,其他有此错误的人发现他们的pdf用密码保护.但是,我可以通过我的mac上的预览访问pdfs.

有人提到预览可能无论如何都可以查看安全的pdf,所以我也在Adobe Acrobat Reader中打开文件,但仍然可以访问pdf.

以下是我从以下网站下载pdf的示例:http: //www.sophia-project.org/uploads/1/3/9/5/13955288/aristotle_firstprinciples.pdf

我发现如果我手动打开pdf并将其作为pdf重新导出到同一个文件路径(基本上用'new'文件替换原始文件),那么我就能从中提取文本.我猜这与从网站下载它们有关.我只是使用urllib下载pdfs,如下所示:

if not os.path.isfile(filepath):
    print '\nDownloading pdf'
    urllib.urlretrieve(link, filepath)
else:
    print '\nFile {} already exists!'.format(title)
Run Code Online (Sandbox Code Playgroud)

我也尝试将文件重写为新的文件路径,但它仍然导致相同的错误.

if not os.path.isfile(filepath):
    print '\nDownloading pdf'
    urllib.urlretrieve(link, filepath)

    with open(filepath) as f:
        new_filepath = re.split(r'\.', filepath)[0] + '_.pdf'
        new_f = file(new_filepath, 'w')
        new_f.write(f.read())
        new_f.close()

    os.remove(filepath)
    filepath = new_filepath …
Run Code Online (Sandbox Code Playgroud)

python pdf text nlp pdfminer

5
推荐指数
2
解决办法
4617
查看次数

标签 统计

pdf ×2

python ×2

nlp ×1

passwords ×1

pdf-generation ×1

pdfminer ×1

text ×1