浅析Corel DrawVBA在地图制图中的应用
2014-04-17吴瑨
吴 瑨
(沈阳市勘察测绘研究院,辽宁 沈阳 110004)
1 CorelDraw与VBA简介
CorelDraw是近年来被广泛应用在地图制图领域的矢量图处理软件,相对于传统的地图制图软件ArcGis、MapGis等,作为专业的图形图像软件,在地图的美观性上,coreldraw有其无法比拟的优越性,并且在出图印刷上,coreldraw也有着其他软件所不具备的优势,在菜单文件选项下,它有专门的“为彩色输出做准备”一项。
但由于CorelDraw不是专业的地图制图软件,所以在地图制图中,作业人员要综合应用包括CorelDraw在内的多种软件协同配合才能制作出一幅精良的地图。[1]
通常的过程是,应用ArcGis做初期的数据采集与库管理工作,然后应用MapGis做初步的地图成图、注记标注等,最后用CorelDraw进行图面美化与细节修饰等。
1998年corel公司做出战略调整,在CorelDraw中集成了VBA,极大的改善了CorelDraw的拓展功能,使用户可以二次开发出适合自己应用的宏。[2]
VBA(Visual Basic for Applications)是 Microsoft Visual Basic(VB)面向对象程序开发环境的一个子集,是新一代标准宏语言。VBA使用Visual Basic Editor交互开发环境和VB语言操作应用程序的对象来增强应用程序的功能。
VBA为用户提供了一套客户化CorelDraw应用程序的图形用户界面,用户可以对应用程序中的对象进行有效地操作和处理。VBA使用VB语言,由于它多用于集成到别的应用程序并对应用程序的函数进行客户化,它才加上了“for Applications”,称作VBA。[3]
VBA可以通过记录和运行宏来自动化一系列CorelDraw的任务。更重要的是可以使用VB语言和应用程序内部函数来开发更多的适合用户需要的功能。
VBA继承了VB的开发机制,具有与VB相似的语言结构。它们的集成开发环境也几乎相同。
2 如何使用CorelDraw VBA
CorelDraw VBA支持用户自行录制宏。
如图1所示,在菜单栏中,选择工具——Visual Basic——录制,命名宏并保存,开始录制宏,用户可以对文件进行处理,以达到自己预期的效果,然后停止录制,需要的时候,选择播放宏,播放录制好的宏,可重复录制的过程。
然而简单的录制宏,远远无法满足复杂操作的需求,这时候需要应用Visual Basic编辑器来编辑适合的宏。
以CorelDraw X3为例,在编辑宏前,首先需要在文件夹C:Program FilesCorelCorelDRAW Graphics Suite 13DrawGMS下新建一个文件后缀为.gms的文件。
步骤为,新建一个文本文档并命名,再将文本文档的后缀.txt改为.gms,如果无法更改后缀,则需要先将工具——文件夹选项——查看下的“隐藏已知文件拓展名”选项前的对号勾掉。
然后再启动CorelDraw,新建文件,或是打开一个已有文件,在菜单栏下选择工具——Visual Basic——Visual Basic编辑器 (快捷键Alt+f11),在工程——GlobalMacros窗口找到新建的GMS文件,便可以编辑宏了。
VBA继承了VB的开发机制,与VB有相似的开发语言,他们的集成开发环境也几乎相同,不同之处在于,VB可以生成独立的应用程序,但VBA只能生成运行在宿主程序中的宏。[4]
Visual Basic编辑器界面与VB界面很相似,程序的编译与调试过程也与VB类似,有一定编程基础的人会很快熟悉并编制出适合自己的宏。
图1
3 运用VBA编译自动生成CMYK色表的宏
应用多种软件精心制作出的地图,最后一般会通过CorelDraw来出图印刷或喷绘。
在CorelDraw菜单栏下,选择文件——为彩色输出中心做准备,点选搜集与文档相关联的所有文件,复制字体,生成PDF文件,便会生成一个专门用于印刷或喷绘的文件夹。
但在印刷或喷绘过程中,由于机器的型号、油墨的色值、纸张的选择等多种因素,会影响打印质量,使预先调配好的颜色并不能达到预期效果,尤其是出图数量不大的情况下而采用的打印机喷绘,色差更为严重。[5]
由此可见,制作出一套专用于某次印刷工序或某一打印机的色表很有必要。
但一套色表,以CMYK色彩模式为例,即使色值密度选为50,需要绘制的色块也要八十个,加上文本注释、标题、横纵坐标等,需要绘制的对象要超过一百六十个,况且,色表要用于调色配比,色值密度选为50过于稀疏,色值密度20的时候,对象则要超过两千五百个。
CorelDraw VBA的优势在于通过程序编译,可以让计算机自动完成一系列有内在规律、重复性高的工作。就像色表,如此繁多的对象,不借助CorelDraw的VBA工具去机辅绘制,会是一项工作量极大且难以完成的工作。
色表生成器的数学逻辑为,循环定位坐标,绘制矩形,为矩形赋值(颜色),并在对应矩形下生成文本标注。
程序释义为,该VBA程序为一个循环程序,通过数值的增加,改变相关联的属性和赋值(矩形四角坐标、矩形颜色、文本内容有内在联系),并在文件中生成正确的色表。
程序主要代码与注释如下:
图2
文本框内可输入用户需要的色值密度,本次输入“100”仅作示例。
程序运行结果如图3所示。
生成色表之后,可以在菜单栏下选择文件——打印设置中点选“设置打印参数”,将色表打印出来,并根据该打印出的色表来配比地图的颜色。
色表的制作不仅仅适用于地图制图领域,还可以应用于其他图像设计领域,图像设计必然会涉及到颜色配比,只要涉及到颜色配比,色表便有其不可或缺的独到用处。
图3
4 设置宏的快捷启动项
当对CorelDraw VBA熟悉之后,作业员可能会用VBA编译出经常使用的宏,如果每次都通过菜单栏下的工具——Visual Basic——播放来选择运行宏,会很繁琐而不便。
可以通过如下的方法,将宏添加在菜单栏中,不需要每次都去窗口中寻找,方便快捷。
步骤如下:
打开菜单栏下的工具——自定义,点击命令栏,新建一个命令栏“我的工具”,如图4所示。
图4
然后点击命令,在下拉窗口中选择宏,选中需要的宏,鼠标左键拖拽到新建的命令栏中,如图5所示,确定即可。
图5
以后每次需要运行该宏的时候,点击命令栏中该宏的图标便可启动。
在命令窗口中,也可以对宏的常规、快捷键、外观加以设计。可以用这种方法添加多个宏的命令栏启动项。
5 结束语
本文主要阐述了CorelDraw VBA在地图制图领域的应用,对于重复性高、有内在规律的制图工作,利用VBA编制的宏有很大的优势,可以极大的缩短工作时间、降低工作量。在繁复的制图工作中,找到一些重复操作的技巧,究其逻辑性,根据其规律编译出解决问题的宏,借助计算机实现自动化,会使地图制图工作变得更加准确高效。
[1]姚兴海,姚磊.CorelDRAW地图制图[M].中国地图出版社,2008,6:1-203.
[2]CorelDRAW/Corel DESIGNER VBA macros[OL].http://www.oberonplace.com/vba/drawmacros/index.htm.
[3]司连法.基于Coreldraw 10进行VBA二次开发和实例解析[OL].http://www.chinamap.com/CORE/Catalogue.htm.
[4]张建辉.Visual Basic从初学到精通[M].电子工业出版社,2010,6:1-517.
[5]Rick McCleary.CMYK 2.0:设计师色彩管理手册[M].人民邮电出版社,2010,4:1-254.