如何使用Python从Pdf导入混合分数



我是python的新手。我正在尝试使用Python从pdf文件中提取混合分数。但我不知道应该使用哪种工具来提取。我的示例pdf只包含一页简单的文本。我想使用Python提取零件名称和零件长度。示例pdf页面的屏幕截图如图片链接pdf的第1页-屏幕截图所示。Pdf文件可以从以下链接下载(示例Pdf(

编辑1:-更新

谢谢你推荐Pdfplumber。这是一个很好的工具。我可以用它提取信息。尽管在某些情况下,当我提取长度时,我会得到与分母相结合的整数。比方说,如果我有36 1/2的长度(如屏幕截图所示(,那么我得到的值是362英寸。

import pdfplumber
with pdfplumber.open("Sample.pdf") as pdf:
first_page = pdf.pages[0]
text = first_page.extract_text()
for row in text.split('n'):
if 'inches' in row:
num = row.split()[0]
print(num)

输出:362

这个代码在大多数情况下对我有效。只是在某些情况下,我得到362作为我的输出,而不是36作为一个单独的值。我该如何解决这个问题?

pdfplumber给出类似的输出

shape: square 
part name: square 














1
36   𝑖𝑛𝑐ℎ𝑒𝑠 
2

我建议使用PDF Pluber,它是一个非常强大且文档丰富的工具,用于从PDF中提取文本、表格和图像。此外,它还有一个非常方便的函数,称为crop,允许您只裁剪和提取页面中需要的部分。

举个例子,代码是这样的(注意,这将适用于任何数量的页面(:

filename = 'path/to/your/PDF'
crop_coords = [x0, top, x1, bottom]
text = ''
pages = []
with pdfplumber.open(filename) as pdf:
for i, page in enumerate(pdf.pages):
my_width = page.width
my_height = page.height
# Crop pages
my_bbox = (crop_coords[0]*float(my_width), crop_coords[1]*float(my_height), crop_coords[2]*float(my_width), crop_coords[3]*float(my_height))
page_crop = page.crop(bbox=my_bbox)
text = text+str(page_crop.extract_text()).lower()
pages.append(page_crop)

以下是coords的解释:

x0 = % Distance from left vertical cut to left side of page.
top = % Distance from upper horizontal cut to upper side of page.
x1 = % Distance from right vertical cut to right side of page.
bottom = % Distance from lower horizontal cut to lower side of page.

最新更新