批量打印程序编写的一些想法

设计院少不了的是不停的改图,发图,审图。其中转PDF文件确实是一个费力气的活。往往图纸有几十张甚至上百张,一张一张的打印着实费时费力。网上也有一些转PDF的软件,自己也尝试了一些,用起来都不是很满意。我想要的是一个点一下,其他都不操心的批量打印软件。于是决定自己动手,恰好自己工作了这几年,用VB和Office与AutoCAD打交道积累的经验也不少了。
  先说说自己对于批量打印或者说批量转PDF的需求。

  1. 支持.xls/.doc/.dwg文件转PDF。
  2. 支持文件夹扫描文件批量打开多个文件并打印。
  3. 并能将生成的PDF文件整理到文件夹中。
  4. 支持对于文件的签署。也就是贴上签名的图片。
  5. 支持DWG文件中查找不到的大字体的替换。
  6. 支持匹配图纸尺寸、范围打印,自动旋转等设置。

于是目前最终的界面是这样子的:


批量打印程序界面

实际上这个软件是自己不断补充,逐次把功能加上去的。回顾下自己做这个软件的历程。
  之前自己也对转图的机械操作工作量有所体会。五十张图纸自己要转两个多小时。也想过能不能有批量转图的方法。当时还没想到从网上找现成的工具。实际上直到自己开始写代码,找资料才发现这类的工具已经有不少了。
  有一天有个人问我有没有批量打印word的程序。我以为是想让我写个程序,于是和她说,没有写过,不过这个应该很简单。由于Office软件可以录制宏得到代码,于是加上个批量遍历打开文件,加上录制出来的发送到打印机的设置代码也就不用两个小时就可以搞定出来。于是发给他,得到一个回复“你真是一个神奇的人”。才明白,是问我有没有现成的工具。不过开了个头,就要有收尾。
  再加上Excel文件的批量打印更不必说了,VBA与Excel是亲密搭档。
  于是开始思考打印DWG文件。其实网上搜了一下,就找到了相关的VB代码。加上遍历打开文件就初步差不多了。不过还要解决打印设置的问题。和Office文档不一样的是,Excel文件、Word文件中已经把打印设置设置好了,只需要发送到打印机就可以。而DWG图纸里的打印设置极有可能是不正确的。所以还要考虑如何设置打印样式的问题。其实主要是设置打印范围的问题。
  鉴于一般我院作图都极度不规范,判断图框确实是个大问题,既不能用块名称来判断,因为块很可能被更名,也不能用块或多段线的的尺寸是否匹配图框大小来打印,因为可能被缩放或者块直接被打碎了。不过有一个必须要遵守的规范就是:最终的文件,一张DWG里面只能有一张图。于是索性将打印范围设置为“范围”,这个问题就轻松解决了。
  上面这些最开始是使用VBA编写的,由于VBA是寄生在主程序中的。也就是最初这版做的是在Word中批量打印DOC文件,在Excel中批量打印XLS文件,在AutoCAD中批量打印DWG文件。于是有了下一个计划:将这几个批量打印程序整合到一起。
  将各个程序整合到一起,需要解决的问题是:1.VBA代码转写为VB代码,部分常量需要转换。2.VB调用本机需要考虑版本不兼容的问题,例如2003版不带转PDF功能,只能发送到虚拟打印机。AutoCAD低版本相比高版本有些环境变量直接没有,而我到现在也没找到如何在低版本设置这些变量的方法。只好放弃对低版本的支持。
  这时发现,Office高版本(2007版之后)已经自带了转PDF个功能,效率比发送到虚拟打印机快多了。做这个程序的时候,自己找了几种转PDF的方式。首先是PDF虚拟打印机。例如Adobe和pdfFactory打印机。其二是软件自带的转PDF功能,例如上文说到的Office自带的SaveAsPDFandXPS功能。而AutoCAD自带转PDF功能其实也是有的例如DWG to PDF的打印机驱动,或者是发布功能,不过最终我没有考虑。不仅因为一些低版本没这功能,而且我也没找到如何通过VB调用AutoCAD的发布功能。
  然后最棘手的问题来了,如何判断是否本机有缺失的字体,因为简单字体还好说,AutoCAD如果找不到的话有个默认字体,直接替换了。但是大字体需要自己选,如果使用VB程序打开根本不会提示用户替换字体,于是很可能打印出来的是缺字的。很多人画图根本不管图纸上设置的字体本机有没有,每次都不厌其烦的点替换字体,设置还有默认取消字体替换的。于是在做最初的一版的时候告知了打架如何设置字体,替换字体。如何使用acad.fmp设置默认替换字体。不过,我估计也没几个人能听懂。
  不过字体替换这个问题最终还是解决了,在打开AutoCAD的时候查找字体路径,并将有的字体存入数组,在打开图纸的时候查看大字体,缺失的字体直接替换成hztxt.shx。
  还需要解决的一个问题是,将生成的PDF文件按照源文件的路径格式整理好。使用SaveAsPDFandXPS功能很好实现。但是发送到打印机的就不好设置了。首选想到的是怎么让Adobe打印机如我所愿的更改保存路径,在查找了注册表之后还是让我找到了。于是Adobe打印机生成的路径可以控制了。然后发现pdfFactory打印机更简单,它的默认保存路径是固定的。只要把二者设置为不打印预览就可以让打印机默默为我工作了。
  最后是自动签名功能。其实很简单,在模板中加入的代号文字,打开的时候查找替换成相应的图片就可以了。DWG图纸则是添加的image图片路径。
  还有增加了停止按钮功能,只是加个时间判断就可以了。
  后记,用了这个批量打印之后,转多少图都不怕了。速度快,而且一点也不累。但是却少了最后检查一遍图纸的动力了。哎。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 调用格式 ** AcmeCadConverter [/r] [/e] [/m] [/info] [/l fila...
    MarkRight阅读 3,050评论 0 3
  • 如果说程序员是“码农”的话,那设计员就是“图农”。设计员要不胜其烦得升版改图,又要机械得将这些图纸转成PDF。少则...
    因思道客阅读 671评论 0 0
  • 1、Excel打印技巧大全 没有打印机一样可以打印预览 在没有安装打印机的电脑上按下Excel的“打印预览”按钮后...
    枫林又晚阅读 3,946评论 0 17
  • 1、钱,就像内裤,你得有,但不必逢人就证明你有 2、干事业,就像怀孕,得够月,着急了就容易流产 3、你若成功了,放...
    忆痕惜dxh阅读 675评论 0 0
  • 每次谈及这个话题,都给人不好的感觉,如果人人都可以做到好好的保护环境,那这个话题就可以不用再讨论了,不用再深究了。...
    法管院2017级公管3班阅读 173评论 0 0