建筑工程行业往往甲方不直接提供DWG格式的图纸,只提供高清PDF版,虽然也能看清所有内容但是往往甲方并不了解乙方所要的尺寸,漏标或者没有直接标出的情况很多,现在收费软件已经有这个功能了。本文介绍一下如何靠python完成PDF转DWG的技巧:
准备知识:python 3,R2V软件
数据准备:甲方提供的PDF文件
首先PDF需要转成高清的图片格式,python中相关的包有pdfminer3k,PyMuPDF,PyPDF2等,这里我们采用PyMuPDF这个包,采用PIP3 install pymupdf成功后,就可以通过python进行pdf to png转换了
import sys #用于文件读取
import fitz #pymupdf的包名称
argv=[0,"d:/1.pdf",1,1200,0,"d:/1.png"]#设置一下转换参数,便于转换成命令行方式调用,以后可以用其他语言进行调用
‘’‘
参数说明1.占位,如果命令行调用,指当前的python文件名
2.原文件名
3需要转换的页号,1代表第一页
4.比例系数,为了得到高清图片,比例系数建议设得比较大
5.旋转角,一般设成(度)
6.转换后的文件头名
’‘’
doc =fitz.Document(argv[1])加载PDF文件
pn = int(argv[2])-1
if pn > doc.pageCount: #如果页号超过总页数则报错
raise SystemExit('%s has%d pages only' % (sys.argv[1], doc.pageCount))
# get the page
page = doc[pn]
#建立内容缩放比例
zoom = int(argv[3])
rotate = int(argv[4])
trans =fitz.Matrix(zoom/100.0, zoom/100.0).preRotate(rotate)
#生成图片
pm =page.getPixmap(matrix = trans, alpha = False)
#把图片写入文件
pm.writePNG(sys.argv[5])
到此,第一步也是最关键的一步的转换工作完成
然后利用R2V的软件就可以把PNG转成DWG了,我这里用的是AlgoLab R2V Conversion Toolkit,相关操作比较简单就不介绍了
领取专属 10元无门槛券
私享最新 技术干货