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

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

岁月如白驹过隙,如指尖流沙,不知不觉已经离开了陪伴我度过四年岁月的学校,离开了那间堆满各种书籍的宿舍,离开了通宵开发的实验室,离开了教室里的最后一排课桌椅......(虽然,我并不是很喜欢它&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)是一种基于自然选择和遗传学原理的优化搜索算法,它通过模拟自然界的进化过程来寻找最优解。 一、基本原理 遗传算法的基本原理是模拟自然选择、遗传和突变等生物进化过程。它通过将问题的求解过程转换成类似…

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

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

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

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

基于Java Springboot奶茶点餐微信小程序

一、作品包含 源码数据库万字文档全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA,微信开发者工具 数据…

centos8:Could not resolve host: mirrorlist.centos.org

【1】错误消息: [rootcentos211 redis-7.0.15]# yum update CentOS Stream 8 - AppStream …