AutoCAD2PDF批量打印程序设计

2019-10-31 06:52
船舶 2019年5期
关键词:批量页码排序

(中国船舶及海洋工程设计研究院 上海200011)

引 言

目前,船舶的二维设计大多都采用AutoCAD,而且一份AutoCAD图纸中通常会包含该图纸的所有页面,这方便了设计过程中的互相参照,但是其打印输出睥便捷性却无法与Word、Excel等相比,只能逐页打印,费时费力。

在船舶设计过程当中,设计单位需要与设备厂、船东及船厂等合作方不断沟通,而沟通媒介通常是PDF格式图纸;针对于船级社要求的电子送审,送审的图纸也要求PDF格式。如果仅依靠AutoCAD本身的打印功能,依次将所需页面进行打印并合并为一个PDF文件,对于只有少量页面的图纸尚可接受,但若是包含几十甚至上百个页面的图纸,这种重复的打印操作就会占用大量宝贵的设计工时。因此,将AutoCAD文档中所有需要的页面直接转换为相应PDF文档的程序就成了非常迫切的需求。

1 目前的批量打印程序状况

1.1 AutoCAD自带的批量打印

AutoCAD本身也提供了批量打印的功能,在图纸设计完成后,在“页面设置管理器”中设置好需要打印的页面,然后执行“批处理打印”就可以了,界面如图1和图2所示。其优点是无需其他二次开发工具,是AutoCAD本身内置功能,可以按照预先的设置将图面打印成不同样式、可以发送到不同的打印机。但其缺点也很明显,那就是:每一个页面都要设置。如果一份图纸中有几十甚至上百个页面,这个工作量则相当大;如果图面位置发生变化,变化的页面仍需重新设置。

图 1 AutoCAD“批处理打印”的图标面板

图 2 AutoCAD“发布”功能的界面

这个功能对于图纸按页面发送到打印机还是有一定优势的,但对于打印需要审批的情况就无法处理,而且不停地发送打印审批请求对审批人员也是一个不小的干扰。

1.2 极速打印

极速打印是一款基于AutoCAD 2004、采用Visual Basic 6.0编写的AutoCAD批量打印PDF的程序,界面如下页图3。程序通过指定图框特性来确定图纸尺寸,同时按指定的打印顺序确定输出的页码顺序。该程序完美解决了AutoCAD批量打印为PDF的问题,但它仍有一些缺点,如:需要安装第三方的pdfFactory打印机;只能在AutoCAD 2004下执行;需要旋转A4以外的页面;需要指定打印顺序;操作失误则必须重启程序才能继续执行等问题。

图 3 极速打印的主界面

1.3 其他批量打印程序

网络上还可以下载诸如Batchplot等不错的AutoCAD批量打印软件,这些软件没有“极速打印”的版本依赖问题,但同样具有需要安装第三方的pdfFactory打印机、需要指定打印顺序以及需要旋转A4以外的页面等问题。

2 程序设计思路

程序的设计除了要完成类似其他批量打印程序的打印功能外,还应该解决以下问题:

2.1 页面排序

设计人员完成图纸设计后需要进行页面排序,采用第三方批量打印程序打印时还要进行一次页面排序,也就是说整个过程中页面排序是重复操作。为解决该问题,将后面一次的页面排序与第一次合并,在后面的打印过程中直接按排好序的页面进行打印。

2.2 PDF打印机

第三方批量打印程序采用的基本都是pdfFactory虚拟打印机,也就是说,采用第三方批量打印程序都必须安装该打印机。为此,程序采用AutoCAD自带的“DWG to PDF.pc3”打印机,解决了打印机的依赖问题。

2.3 页面旋转

pdfFactory虚拟打印机输出的图纸都是纵向的,横向图纸输出为纵向的总归不利于阅读,很多时候用户需要在PDF阅读器中将页面进行旋转编辑至正确的视图方向。AutoCAD自带的“DWG to PDF.pc3”打印机输出是完全按照AutoCAD图形文件中的视图方向的,采用该打印机就可以解决问题。

2.4 PDF页面裁剪

AutoCAD自带的“DWG to PDF.pc3”打印机包含的都是一些标准的图纸尺寸,但在实际设计当中还是经常会碰到图纸加长或加宽的情况,要打印这些图纸就需要自定义图纸尺寸。为了解决打印过程中的图纸尺寸的自定义的问题,程序先将图纸按大尺寸打印,然后采用PDF页面裁剪[3]功能来解决。

2.5 PDF页面合并[3]

pdfFactory虚拟打印机的优点是可以同时接收AutoCAD发送的所有打印任务,而AutoCAD自带的“DWG to PDF.pc3”打印机就只能保存单个打印任务,这样,AutoCAD发送了多少页打印任务,就会产生多少个PDF文件。为此,程序通过PDF页面合并[3]功能将所产生的多个PDF文件合并为一个PDF文件。

3 程序功能

为消除上述批量打印程序的缺陷,基于AutoCAD .NET API[7,8,11]开发了新的 AutoCAD 转PDF的程序,程序功能如下:

3.1 插入标准图框

在新图纸设绘之前,插入图纸需要的标准图框(图4)及标题栏、明细栏、页码等(图5)等内容,标题栏、明细栏、页码等内容可以按照用户需要进行自定义,然后在图5显示的界面中自行指定。

图 4 插入预定义图框的界面

图 5 插入图框附加内容的界面

3.2 页面排序

图纸设计完成以后,可以调用图6显示的页码重排功能。在该功能界面,用户先自行指定含有页码的AutoCAD块参照的名称,然后按照图纸定义的页码顺序选择AutoCAD块参照,最后选择标题栏的AutoCAD块参照,程序会按照指定的顺序对所有页码进行重排,并可以修改标题栏中的总页数、总面积以及统一所有图号。

3.3 打印当前图纸

图 6 页码重排的界面

图 7 打印当前图形的界面

页面排序完成后,用户就可以直接将当前图纸打印为一个单独的PDF文件(如图7所示),打印之前用户还可以按照需求设置打印样式、打印的内容是否包含AutoCAD图层信息、是否按比例打印以及打印完成后是否打开PDF文件用于查看等信息。

程序在后台先搜索当前图纸中包含的所有页面,进行排序后逐页进行打印,完成后将所有页面合并为一个与当前图纸同名的PDF文件。

3.4 批量打印

为了满足设计人员将AutoCAD图形文件批量转换为PDF文件的需求,程序提供了批量转换的功能(如下页图8所示)。用户只要将所需转换的AutoCAD图形文件逐一选择,程序就可以将所有的文件转换为PDF文件,并将生成的文件保存为相应的PDF文件,与AutoCAD图形文件放置在同一文件夹。

图 8 批量打印图形的界面

3.5 代码示例

此处仅提供关于打印的部分代码及PDF文件合并操作的代码。

3.5.1 部分打印代码

4 结 语

极速打印、Batchplot等第三方打印程序的应用解决了AutoCAD打印为PDF文件的问题,但在页面排序、页面视图等方面无法进行延伸处理。

程序的设计将页面选择操作合并到页面排序操作中,免除了打印时再次的页面顺序选择,真正实现了一键操作;程序使用的打印机是AutoCAD自带的PDF打印机“DWG to PDF.pc3”,不再依赖于第三方的PDF打印机;另外,程序也消除了A4以外的图面旋转问题,输出的PDF文件完全是当前图形的方向,便于阅读。

该程序的开发给设计人员带来极大便利,AutoCAD转换为PDF不再是一个繁杂工作。

猜你喜欢
批量页码排序
批量精装房项目工程信息管理综述
云南:铁路“520”运输鲜花4万余件 高铁批量运输创新高
作者简介
批量提交在配置分发中的应用
有惊无险的手抄报
恐怖排序
感谢
去沙滩玩
围巾里的小星星
节日排序