Python 全栈:用 Python 操作 PDF 文件
2022-01-15 本文已影响0人
you的日常
PDF 是 Portable Document Format 的缩写,这类文件通常使用 .pdf
作为其扩展名。在日常开发工作中,最容易遇到的就是从 PDF 中读取文本内容以及用已有的内容生成 PDF 文档这两个任务。
从PDF中提取文本
在Python中,可以使用名为 PyPDF2
的三方库来读取PDF文件,可以使用下面的命令来安装它。
pip install PyPDF2
PyPDF2
没有办法从 PDF 文档中提取图像、图表或其他媒体,但它可以提取文本,并将其返回为 Python 字符串。
import PyPDF2
reader = PyPDF2.PdfFileReader('test.pdf')
page = reader.getPage(0)
print(page.extractText())
当然,PyPDF2
并不是什么样的 PDF 文档都能提取出文字来,这个问题就我所知并没有什么特别好的解决方法,尤其是在提取中文的时候。网上也有很多讲解从 PDF 中提取文字的文章,推荐大家自行阅读进行了解, 后续我们也可以花点时间讲解下。
要从 PDF 文件中提取文本也可以直接使用三方的命令行工具,具体的做法如下所示。
pip install pdfminer.six
pdf2text.py test.pdf
旋转和叠加页面
上面的代码中通过创建 PdfFileReader
对象的方式来读取 PDF 文档,该对象的 getPage
方法可以获得 PDF 文档的指定页并得到一个 PageObject
对象,通过 PageObject
对象的 rotateClockwise
和 rotateCounterClockwise
方法可以实现页面的顺时针和逆时针方向旋转,通过 PageObject
对象的 addBlankPage
方法可以添加一个新的空白页,代码如下所示。