标签: pypdf

在python中从PDF中提取图像而不重新采样?

如何从原始分辨率和格式中提取pdf文档中的所有图像?(意思是提取tiff为tiff,jpeg为jpeg等,无需重新采样).布局是不重要的,我不在乎是源图像位于页面上.

我正在使用python 2.7,但如果需要可以使用3.x.

python pdf image extract pypdf

61
推荐指数
13
解决办法
7万
查看次数

pypdf将多个pdf文件合并为一个pdf

如果我有1000多个pdf文件需要合并成一个pdf,

input = PdfFileReader()
output = PdfFileWriter()
filename0000 ----- filename 1000
    input = PdfFileReader(file(filename, "rb"))
    pageCount = input.getNumPages()
    for iPage in range(0, pageCount):
        output.addPage(input.getPage(iPage))
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()
Run Code Online (Sandbox Code Playgroud)

执行上面的代码时input = PdfFileReader(file(filename500+, "rb")),

错误消息: IOError: [Errno 24] Too many open files:

我认为这是一个错误,如果没有,我该怎么办?

python pypdf

29
推荐指数
1
解决办法
4万
查看次数

如何使用PyPdf在pdf文件中逐行阅读?

我有一些代码可以从pdf文件中读取.有没有办法在Windows上使用Pypdf,Python 2.6在pdf文件(而不是页面)中逐行读取?

以下是阅读pdf页面的代码:

import pyPdf

def getPDFContent(path):
    content = ""
    num_pages = 10
    p = file(path, "rb")
    pdf = pyPdf.PdfFileReader(p)
    for i in range(0, num_pages):
        content += pdf.getPage(i).extractText() + "\n"
    content = " ".join(content.replace(u"\xa0", " ").strip().split())
    return content
Run Code Online (Sandbox Code Playgroud)

更新:

通话代码是这样的:

f= open('test.txt','w')
pdfl = getPDFContent("test.pdf").encode("ascii", "ignore")
f.write(pdfl)
f.close()
Run Code Online (Sandbox Code Playgroud)

python pdf pypdf

25
推荐指数
3
解决办法
6万
查看次数

Camelot:DeprecationError:PdfFileReader 已弃用

我一直在我们的项目中使用camelot,但是自两天以来我收到了以下错误消息。当尝试运行以下代码片段时:

import camelot
tables = camelot.read_pdf('C:\\Users\\user\\Downloads\\foo.pdf', pages='1')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

DeprecationError: PdfFileReader is deprecated and was removed in PyPDF2 3.0.0. Use PdfReader instead.
Run Code Online (Sandbox Code Playgroud)

我检查了这个文件,它确实使用 pdfFileReader: c:\ProgramData\Anaconda3\lib\site-packages\camelot\handlers.py

我以为我可以指定PyPDF2的版本,但是当我安装camelot时它会自动安装(因为该库是camelot使用的)。您认为有什么解决方案可以手动指定PyPDF2的版本吗?

python pypdf python-camelot

20
推荐指数
1
解决办法
6万
查看次数

如何从Python中提取PDF文件中的文本?

如何从Python中提取PDF文件中的文本?

我尝试了以下方法:

import sys
import pyPdf

def convertPdf2String(path):
      content = ""
      pdf = pyPdf.PdfFileReader(file(path, "rb"))
      for i in range(0, pdf.getNumPages()):
          content += pdf.getPage(i).extractText() + " \n"
          content = " ".join(content.replace(u"\xa0", u" ").strip().split())
      return content

f = open('a.txt','w+')

f.write(convertPdf2String(sys.argv[1]).encode("ascii","xmlcharrefreplace"))
f.close()
Run Code Online (Sandbox Code Playgroud)

但结果如下,而不是可读文本:

728;~˚!""˘˙˝˛˛˛˛〜˘˛˙"˘"〜#$˙˚%&˘˛〜'˙% ˝˛˙~~'#$%&('%$&))$ $ +%#, - .+ &&˝())˝) ˝+ ,, - ./ 012)(˝)*˝+, - 3˙/ 0245)6#57 + 82,55)6#57 +,+ 2,+ /!#!!&˘˘1"%˘20˛˛307%4!˘"6˛ ˝˝&/&4"9%6%4%4&5˘2)˘˘˛%:6(

python pypdf

19
推荐指数
1
解决办法
3万
查看次数

使用pyPDF从文档中检索页码

目前我正在考虑使用pyPdf进行一些PDF合并,但有时输入的顺序不正确,所以我正在研究每页的页面编号,以确定它应该进入的顺序(例如,如果有人将一本书分成20页10页PDF,我想把它们重新组合在一起).

我有两个问题 - 1.)我知道有时页码存储在文档数据的某个地方,因为我看到在Adobe上呈现的PDF类似于[1243](10 of 150),但我读过这种文件到pyPDF我找不到任何表明页码的信息 - 这个存储在哪里?

2.)如果avenue#1不可用,我想我可以遍历给定页面上的对象以尝试查找页码 - 可能是它自己的对象中有一个数字.但是,我似乎无法找到任何明确的方法来确定对象的内容.如果我跑:

pdf.getPage(0).getContents()
Run Code Online (Sandbox Code Playgroud)

这通常会返回:

{'/Filter': '/FlateDecode'}
Run Code Online (Sandbox Code Playgroud)

或者它返回IndirectObject(num,num)对象的列表.我真的不知道如何处理其中任何一个,据我所知,它没有真正的文档.熟悉这种事情的人是否能指出我正确的方向?

python pypdf

16
推荐指数
4
解决办法
3万
查看次数

使用python PyPDF2从PDF中提取图像

有没有办法从pdf文档中提取图像(使用PyPDF2库)?也可以将一些图像替换为另一个图像(例如用PIL生成或从文件加载)?

我能够从pdf对象树中获取EncodedStreamObject并获得编码流(通过调用getData()方法),但看起来它只是原始内容,没有任何图像标题和其他元信息.

>>> import PyPDF2
>>> # sample.pdf contains png images
>>> reader = PyPDF2.PdfFileReader(open('sample.pdf', 'rb'))
>>> reader.resolvedObjects[0][9]
{'/BitsPerComponent': 8,
'/ColorSpace': ['/ICCBased', IndirectObject(20, 0)],
'/Filter': '/FlateDecode',
'/Height': 30,
'/Subtype': '/Image',
'/Type': '/XObject',
'/Width': 100}
>>>
>>> reader.resolvedObjects[0][9].__class__
PyPDF2.generic.EncodedStreamObject
>>>
>>> s = reader.resolvedObjects[0][9].getData()
>>> len(s), s[:10]
(9000, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc')
Run Code Online (Sandbox Code Playgroud)

我已经仔细研究过PyPDF2,ReportLabPDFMiner解决方案,但没有找到类似我正在寻找的东西.

任何代码示例和链接都将非常有用.

python pdf reportlab image-processing pypdf

15
推荐指数
1
解决办法
9082
查看次数

无法使用pypdf模块

我已经使用命令pip install pydf成功安装了pyPdf模块但是当我使用import命令使用模块时,我收到以下错误:

enC:\Anaconda3\lib\site-packages\pyPdf\__init__.py in <module>()
1 from pdf import PdfFileReader, PdfFileWriter
  2 __all__ = ["pdf"]
ImportError: No module named 'pdf'
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我也安装了pdf模块,但错误仍然没有消失.

pypdf python-3.x

15
推荐指数
5
解决办法
3万
查看次数

裁剪.pdf文件的页面

我想知道是否有人有任何编程与.pdf文件工作的经验.我有一个.pdf文件,我需要将每个页面裁剪到一定的大小.

快速搜索谷歌后,我找到了python的pyPdf库,但我的实验失败了.当我更改页面对象上的cropBox和trimBox属性时,结果不是我预期的,并且看起来非常随机.

有没有人有这方面的经验?代码示例将非常受欢迎,最好是在python中.

python pdf pypdf

14
推荐指数
3
解决办法
2万
查看次数

如何使用Windows安装pyPDF2模块?

作为一个新手......我在安装pyPDF2模块时遇到了困难.我已经下载了.我在哪里以及如何安装(setup.py)所以我可以在python解释器中使用模块?

python pypdf

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