我在pypdf2的帮助下裁剪了一个pdf文件,但是当我试图从裁剪的pdf文件中提取文本时,我得到了整个pdf页面的文本。我怎样才能解决这个问题?在
但是当我运行命令pdftotext out8.pdf out.txt
我得到:
目录 介绍 第一部分两种制度
故事中的人物
注意和努力
惰性控制器
联想机器
输出应该只是
我运行的代码
from PyPDF2 import PdfFileWriter, PdfFileReader
input1 = PdfFileReader(open("./data/in2.pdf", "rb"))
output = PdfFileWriter()
page = input1.getPage(1)
x = page.mediaBox.getUpperRight_x()
y = page.mediaBox.getUpperRight_y()
page.cropBox.lowerRight = (0,331-150)
page.cropBox.upperRight = (252,331)
output.addPage(page)
outputStream = open("out8.pdf", "wb")
output.write(outputStream)
outputStream.close()
听起来像是从文本层提取文本。PDF可以有一个以上的层-如果它纯粹是一个图像PDF,那么它将只有图像层,但许多有一个图像层和一个文本层。文本层可以在图像前面,也可以在图像后面或者不可见。在
除非PDF是以特殊方式准备的,否则文本层不会与图像中看到的文本对齐。如果您有一个多页的PDF,那么文本可能会被拆分到相关的页面中,否则就不会在页面上进行排列。在
裁剪图像时,这不会影响文本层。当您提取文本时,它将从完整的文本层获取它。在
为了只获得裁剪部分的文本,您需要通过OCR引擎(例如Tesseract)对其进行处理。与Tesseract接口的python包示例:pytesseract和tesserocr。在
有关如何设置和运行处理的一些指南:
ocr-on-pdf-files-using-python
ocr-python-easy
相关问题 更多 >
编程相关推荐