CAD 文件 批量转为PDF或批量打印

CAD 文件 批量转为PDF或批量打印,还是比较稳定的

1.需要本地安装CAD软件
在这里插入图片描述

2.通过 Everything 搜索工具搜索,DWG To PDF.pc3 ,获取到文件目录 ,替换到代码中,

    originalValue = ACADPref.PrinterConfigPath \= r"C:\Users\hyh\AppData\Roaming\Autodesk\AutoCAD 2024\R24.3\chs\Plotters"

在这里插入图片描述

#!/usr/bin/env python
# -*- coding: utf-8 -*-import win32com.client
import time
import os,subprocessdef find_all_sub_files( directory, suffix='.dxf'):''':param directory:  查找的主目录:param suffix: 获取的扩展名:return:  符合扩展名的列表'''all_files = []# 递归遍历目录及其子目录中的所有文件for root, dirs, files in os.walk(directory):for file in files:if file.endswith(suffix):if '~$' not in file:all_files.append(os.path.join(root, file))return all_filesdef close_application(application = "chrome.exe"):# windows系统 关闭谷歌浏览器cmd = "taskkill /f /t /im {}".format(application)# 执行cmd命令,不显示任何输出subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)def cad_to_PDf(pdf_path,doc):# doc = wincad.ActiveDocumentdoc.Utility.Prompt("Hello! Autocad from pywin32com.\n")msp = doc.ModelSpace#print(doc.Name)#print(doc.ActiveLayout.ConfigName)# 设置绘图仪管理器的工作目录ACADPref = doc.Application.preferences.FilesoriginalValue = ACADPref.PrinterConfigPath \= r"C:\Users\hyh\AppData\Roaming\Autodesk\AutoCAD 2024\R24.3\chs\Plotters"#print(ACADPref)#print(originalValue)oplot = doc.PlotConfigurations.Add("PDF", doc.ActiveLayout.ModelType)doc.ActiveLayout.ConfigName = "DWG To PDF.pc3"doc.SetVariable("Filedia", 0)doc.SetVariable("BACKGROUNDPLOT", 0) # 前台打印doc.Plot.QuietErrorMode = Trueprint(pdf_path)doc.Plot.PlotToFile(pdf_path) # 选择打印机,若要采用纸质打印的打印机,则输出就需要将plot.PlotToFile()改为plot.PlotToDevice()# doc.PlotRotation = 0  # 横向打印# doc.StandardScale = 0  # 图纸打印比例# doc.CenterPlot = True  # 居中打印# doc.PlotWithPlotStyles = True  # 依照样式打印# doc.PlotHidden = False  # 隐藏图纸空间对象oplot.Delete()oplot = Noneobj = doc.GetVariable("DBMOD")# print(obj)def cad_conversion(cad_file_dir, save_pdf_path):wincad = win32com.client.Dispatch("AutoCAD.Application")docs = wincad.Documentsdxf_all_list=find_all_sub_files(cad_file_dir, suffix='.dxf')for dxf_path in dxf_all_list:cad_name=dxf_path.split('\\')[-1].replace('.dxf','.pdf')if not os.path.exists(save_pdf_path):os.makedirs(save_pdf_path)pdf_path=os.path.join(save_pdf_path,cad_name)doc = docs.Open(dxf_path)cad_to_PDf( pdf_path, doc)# 关闭CAD文件#doc.Close()doc.Close(False)del doctime.sleep(1)close_application(application="chrome.exe") # 关闭谷歌浏览器,如默认其他浏览器,需要修改 chrome.exewincad.Quit()del wincadif __name__ == '__main__':# CAD文件路径 输出PDF文件路径cad_file = r"D:\Python\CAD\hb"  # 输入CAD文件路径output_pdf = r"D:\Python\CAD\hb\export_cad_data\CAD"  # 输出PDF文件路径cad_conversion(cad_file, output_pdf)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络编程】TCP套接字

TCP与UDP的区别: udp是无连接的、面向数据报(通信时以数据报为单位传输)的传输层通信协议,其中每个数据报都是独立的,通信之前不需要建立连接,bind绑定套接字后直接可以进行通信。 tcp是面向连接的、基于字…

spring-boot-maven-plugin 标红

情况:创建好 Spring Boot 项目后,pom.xml 文件中 spring-boot-maven-plugin 标红。 解决方案:加上 Spring Boot 的版本即可解决。

xv6前置知识

fork函数 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分…

(11)(2.2) BLHeli32 and BLHeli_S ESCs(二)

文章目录 前言 1 传递支持 前言 BLHeli 固件和配置应用程序的开发是为了允许配置 ESC 并提供额外功能。带有此固件的 ESC 允许配置定时、电机方向、LED、电机驱动频率等。在尝试使用 BLHeli 之前,请按照 DShot 设置说明进行操作(DShot setup instructions)。 1 传…

Flink的双流join理解

如何保证Flink双流Join准确性和及时性、除了窗口join还存在哪些实现方式、究竟如何回答才能完全打动面试官呢。。你将在文中找到答案。 1 引子 1.1 数据库SQL中的JOIN 我们先来看看数据库SQL中的JOIN操作。如下所示的订单查询SQL,通过将订单表的id和订单详情表ord…

1.1 数据结构的基本概念

1.1.1 基本概念和术语 一、数据、数据对象、数据元素和数据项的概念和关系 数据:是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。 数据是计算机程序加工的原料。 数据对象:是具有相同性质的数据元素的集合&…

Web实时通信@microsoft/signalr

概要说明 signalr 是微软对 websocket技术的封装; build() 与后端signalR服务建立链接;使用 on 方法监听后端定义的函数;ps:由后端发起,后端向前端发送数据使用 invoke 主动触发后端的函数;ps:由前端发起&a…

【程序人生】“阶段总结“-前路茫茫

岁月如白驹过隙,如指尖流沙,不知不觉已经离开了陪伴我度过四年岁月的学校,离开了那间堆满各种书籍的宿舍,离开了通宵开发的实验室,离开了教室里的最后一排课桌椅......(虽然,我并不是很喜欢它&a…

Android 13 编译Android Studio版本的Launcher3

Android 13 Aosp源码 源码版本Android Studio版本Launcher3QuickStepLib (主要代码) Launcher3ResLib(主要资源)Launcher3IconLoaderLib(图

数据库学习记录02

DQL【数据查询语言】 1.基础查询 1.1语法 select * | {[DISTINCT] column | expression[alias], ...} from table; 特点 查询列表可以是表中的字段、常量值、表达式、函数。 查询的结果是一个虚拟的表格。 #1.查询表中的单个字段 select name from employees;#2.查询表中…

采用片上光学相控阵的激光雷达

激光雷达基础知识 LIDAR 基于众所周知的 RADAR 原理雷达是20世纪初就存在的著名技术激光雷达使用光频率而不是无线电波 激光雷达和雷达 使用相控阵的激光雷达通过干涉来提高方向性 激光雷达的输出剖面是阵列因子和单天线远场的乘积。 N :天线数量 k :…

【通信协议】CAN总线通信协议的学习,(三)stm32f103系列单片机,can通信的代码实现

目录 1、CAN 的基本知识 2、CAN的cubemx配置 3、CAN的代码实现 3.0、初始化,认识函数及变量 3.1、CAN发送 3.1.1、代码1 3.1.2、代码2 3.1.3、代码3 3.2、CAN中断接收 3.2.1、代码1 3.2.2、代码2 3.2.3、代码3 3.3、过滤器 3.3.1、代码1 3.3.2、代码…

「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏

本篇将带你实现一个简单的数字猜谜游戏。用户输入一个数字,应用会判断是否接近目标数字,并提供提示“高一点”或“低一点”,直到用户猜中目标数字。这个小游戏结合状态管理和用户交互,是一个入门级的互动应用示例。 关键词 UI互…

不同类型转换

如果赋值运算两侧是数值型或字符型,但类型不一致时,赋值时自动进行类型的转换。 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型 350为int型,占4个字节,char占一个字节 350二进制: 000000…

计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

操作系统 | 学习笔记 | 王道 | 2.4死锁

2.4 死锁 文章目录 2.4 死锁2.4.1 死锁的概念2.4.2 死锁预防2.4.3 死锁避免2.4.4 死锁检测和解除 2.4.1 死锁的概念 死锁的定义 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象&am…

路径规划之启发式算法之二:遗传算法(Genetic Algorithm)

遗传算法(Genetic Algorithm, GA)是一种基于自然选择和遗传学原理的优化搜索算法,它通过模拟自然界的进化过程来寻找最优解。 一、基本原理 遗传算法的基本原理是模拟自然选择、遗传和突变等生物进化过程。它通过将问题的求解过程转换成类似…

uniapp图片上传预览uni.chooseImage、uni.previewImage

文章目录 1.上传图片2.预览图片 1.上传图片 uni.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照。 App端如需要更丰富的相机拍照API(如直接调用前置摄像头),参考plus.camera 微信小程序从基础库 2.21.0 开始, wx.choos…

软件质量保证——单元测试之白盒技术

笔记内容及图片整理自XJTUSE “软件质量保证” 课程ppt,仅供学习交流使用,谢谢。 程序图 程序图定义 程序图P(V,E),V是节点的集合(节点是程序中的语句或语句片段),E是有向边的集合…

分析 系统滴答时钟(tickClock),设置72MHz系统周期,如何实现1毫秒的系统时间?

一、CubeMX相关配置 1.1 相关引脚配置 1.2 相关时钟数配置 1.3 打开程序源码 二、相关函数分析