我想阅读一个PDF,并获得其页面列表和每页的大小。我不需要以任何方式操纵它,只要阅读它。
目前正在试用pyPdf,它做了我需要的一切,除了一种获得页面大小的方法。理解我可能必须迭代,因为页面大小在PDF文档中可能会有所不同。是否有其他的库/方法可以使用?
我试着使用PIL,一些在线食谱甚至有d=Image(imagefilename)的用法,但它从来没有读过我的任何PDF-它读的一切,我扔在它-甚至一些事情,我不知道PIL可以做。
任何指导赞赏-我在windows 7 64,python 25(因为我也做GAE的东西),但我很高兴在Linux或更现代的pythiis。
9条答案
按热度按时间neskvpey1#
这可以通过pypdf来实现:
(以前称为pyPdf/PyPDF2)
pod7payv2#
2021-07-22更新:原来的答案并不总是正确的,所以我更新了我的答案。
PyMuPDF:
mediabox和rect的返回值类型为Rect,它具有属性“width”和“height”。mediabox和rect之间的一个区别是mediabox与文档中的/MediaBox相同,并且在页面旋转时不会改变。但是,rect受旋转的影响。有关PyMuPDF中不同框的更多信息,您可以阅读术语表。
velaa5lx3#
pdfrw:
长度以磅为单位(1磅= 1/72英寸)。格式为
[x0, y0, x1, y1]
(谢谢mara 004!).e4eetjau4#
对于pdfminer python 3.x(pdfminer.six)(未在python 2.7上尝试):
bn31dyow5#
使用pikepdf:
zf2sa74q6#
borb
的作者,在这个答案中使用的库。我们通过使用
PDF.loads
加载PDF开始代码。然后我们得到一个Page
(您可以更改此代码以打印每个Page
的尺寸,而不仅仅是Page
0)。从Page
,我们得到PageInfo
,它包含宽度和高度。您可以使用
pip
安装borb
:您也可以从here源代码下载它。
如果你需要更多的例子,请查看examples repository。
9rnv2umw7#
使用pypdfium2:
vnzz0bqm8#
另一种方法是使用popplerqt4
w6mmgewl9#
***Python 3.9***和库***PyPDF2***正确代码:
对于***所有页面***: