python - Python PDF 解析器 - 工程绘图
问题描述
我正在尝试编写一个 Python 脚本来使用 PyPDF2 解析 PDF 文件。唯一的问题是,我的 PDF 文件不是您的传统文件,而是工程图。
无论如何,我需要代码来解析写在右下角的文本,以及上面写有文本的红戳。绘图将如下所示:在此处输入图像描述
我试图编写一些基本代码来解析它并提取数据,但它不起作用。
import PyPDF2
# creating a pdf file object
pdfFileObj = open('example.pdf', 'rb')
# creating a pdf reader object
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
# printing number of pages in pdf file
print(pdfReader.numPages)
# creating a page object
pageObj = pdfReader.getPage(0)
# extracting text from page
print(pageObj.extractText())
# closing the pdf file object
pdfFileObj.close()
有人有什么建议吗?
解决方案
派对迟到了……
尽管如此,我们还是开发了一款商业产品来做到这一点:Werk24。它有一个简单的python客户端pip install werk24
有了这个,你的任务变得非常简单。您可以使用简单的命令读取标题栏。想象一下你想获得称号
from werk24 import Hook, W24AskTitleBlock
from werk24.models.techread import W24TechreadMessage
from werk24.utils import w24_read_sync
from . import get_drawing_bytes # define your own
def recv_title_block(message: W24TechreadMessage) -> None:
""" Print the Designation
NOTE: Other fields like Drawing ID, Material etc are
also available.
"""
print(message.payload_dict.get('designation'))
if __name__ == "__main__":
# submit the request to Werk24
w24_read_sync(
get_drawing_bytes(),
[Hook(
ask=W24AskTitleBlock(),
function=recv_title_block
)])
对于您提供的图纸,响应将是:
"designation": {
"captions": [
{
"language": "eng",
"text": "Descr"
}
],
"values": [
{
"language": "eng",
"test": "Shaft",
}
]
}
注意:您的文件非常模糊,因此我手动创建了响应 - API 需要 180 dpi 的最小分辨率(也适用于 TIF 和 DXF 文件)。
推荐阅读
- react-native - React Native:滑动图像时捏缩放无法正常工作
- javascript - 如何在重定向之前显示确认警报?
- c++ - 一个向量/顶点,但具有整数值
- google-apps-script - 谷歌表格:填写数据
- authorization - 可以将 Keycloak 配置为根据用户的属性自动设置角色吗?
- snakemake - 如何根据第一个规则为规则选择第二个通配符?
- rust - 有什么方法可以简化对具有未使用的泛型参数的结构的派生?
- python - 用户不能互相支付 django-paypal
- sql - Data Grip - 如何执行简单的 SQL 格式化(与 DBeaver 中的 ctrl+shift+F 相同)?
- dart - 导出库时如何使用“as”?