在创建了一个使用java和pdfbox提取pdf的工具之后,我一直在尝试用Python提取pdf。
虽然对于相同的pdf,Java实现是成功的,但我一直在努力在python中做同样的事情,因为pdfminer和pypdf和pypdf2都不能逐行提取带有空格的pdf。特别是,出于某种奇怪的原因,pdfminer pdf2txt将pdf拆分为3列,然后逐行读取。
我得到的最接近的是使用a stack overflow question的实现,不幸的是,它没有保留空格。假设我有两个变量都有数字,我无法以文本形式恢复它们。
鉴于此,是否可以在Python中逐行提取带有空格的pdf?
发布于 2021-03-17 22:07:30
在我的案例中,工作如下:
from pdf2image import convert_from_path
import pytesseract
images = convert_from_path("sample.pdf")
for i,image in enumerate(images,start=1):
image.save(f"./images/page_{i}.jpg","JPEG")
print(pytesseract.image_to_string("./images/page_1.jpg"))
这里的想法是首先将PDF转换为图像,然后读取其中的文本。这种方法保留了空白。
依赖项:
forge tesseract
发布于 2021-07-16 01:47:37
您可以使用Aspose.PDF Cloud SDK for Python从PDF中逐行提取文本和空格。目前,它支持来自云存储(亚马逊S3,DropBox,谷歌硬盘存储,谷歌云存储,Windows Azure存储,FTP存储和Aspose默认云存储)的文件处理。
以下是示例代码:
import os
import asposepdfcloud
from asposepdfcloud.apis.pdf_api import PdfApi
# Get Client Id and Client Secret from https://cloud.aspose.com
pdf_api_client = asposepdfcloud.api_client.ApiClient(
app_key='xxxxxxxxxxxxxxxxxx',
app_sid='xxxx-xxxx-xxxx-xxxx-xxxxxxxxxx')
pdf_api = PdfApi(pdf_api_client)
temp_folder="Temp"
#upload PDF file to storage
data_file = "C:/Temp/02_pages.pdf"
remote_name="02_pages.pdf"
pdf_api.upload_file(temp_folder + '/' + remote_name,data_file)
llx = 0
lly = 0
urx = 0
ury = 0
response = pdf_api.get_text(remote_name, llx, lly, urx, ury, folder= temp_folder)
for i in response.text_occurrences.list:
print(i.text)
附言:我是Aspose的开发者布道者
https://stackoverflow.com/questions/17130250
复制相似问题