一、导出矢量图格式
Visio作为微软的专业流程图软件,其支持广泛的矢量图导出格式,主要包括以下几种:
1、EMF/EMZ:Windows增强型元文件格式,可以向下兼容WMF格式;
2、SVG:可缩放矢量图形格式,支持XML描述,可用于图像压缩;
3、PDF:便携式文档格式,矢量图质量高,不易变形,适用于打印和交换文件;
4、DXF/DWG:AutoCAD绘图格式,一种较为通用的矢量图格式,可用于与其它CAD软件协作;
5、XPS:XML Paper Specification,Microsoft公司发布的一种新型页面描述格式,在打印、浏览、存储方面与PDF类似。其中,EMF/EMZ与Windows系统兼容性最佳,SVG和PDF文件在浏览器中显示效果较好,DXF/DWG可被通用CAD软件所使用,XPS是与Windows兼容性最好的格式。
二、导出设置优化
Visio矢量图导出兼容性较好,生成的文件质量较高,但在导出设置时,一些小的优化能有效提高导出效果:
1、字体嵌入:在字体相对较特殊、不易识别的情况下,导出后显示效果差。此时可以选择Embed字体选项,将字体嵌入图像文件中,以保证字体的显示效果;
Public Sub ExportSVG_Try() Dim SVGExportOptionSet As IVisSVGExportOptionSet Set SVGExportOptionSet = New VisSVGExportOptionSet SVGExportOptionSet.FontsToEmbed = VisSVGEmbedFonts_AsNeeded ActiveDocument.ExportAsFixedFormat _ OutputFileName:="./test.svg", _ FixedFormat:="visFixedFormatSVG", _ SVGExportOptionSet:=SVGExportOptionSet End Sub
2、分层导出:Visio中,导出矢量图时可以选择是否按照图层来导出文件。此时,导出的文件中每个图层都对应一个单独的图像文件,方便后期的分层处理;
Public Sub ExportAsSVG_PerLayer() Dim pageObj As Visio.Page Dim layerObj As Visio.Layer Dim layersObj As Visio.Layers Set pageObj = Application.ActivePage Set layersObj = pageObj.Layers For Each layerObj In layersObj If layerObj.Cells("Visible").Result("") = "visLODVisible" Then layerObj.visible = False ActiveDocument.ExportAsFixedFormat _ OutputFileName:="./test_" & layerObj.Name & ".svg", _ FixedFormat:="visFixedFormatSVG", _ UseSelection:=True, _ SelectionOnly:=False, _ PagePerSheet:=False layerObj.visible = True End If Next layerObj End Sub
3、导出尺寸:导出矢量图时可以选择不同的图像大小,选择合适的尺寸能有效控制文件大小,同时也能保证导出效果。
Public Sub ExportAsSVG_WithSize() ActiveWindow.ViewFit = visFitPage ActiveDocument.ExportAsFixedFormat _ OutputFileName:="./test.svg", _ FixedFormat:="visFixedFormatSVG", _ UseSelection:=True, _ SelectionOnly:=False, _ PagePerSheet:=False, _ ToScale:=False, _ DisplayColor:=visDisplayColor, _ IncludeBackground:=True, _ DocumentView:=visDocViewPrint, _ BitmapMissingFonts:=True, _ MapMetafile:=True, _ OverwriteExisting:=True, _ FixedFormatQuality:=visFixedFormatLow, _ FromPage:=1, _ ToPage:=1, _ PrintRange:=vbNullString, _ PrintZoomColumn:=0, _ PrintZoomRow:=0, _ ConsiderPartialPrint:=False, _ ForceForeground:=True, _ PageWidth:=11, _ PageHeight:=8.5 End Sub
三、导出效果分析
Visio导出矢量图的效果受多种因素影响,以下主要从图形复杂度、导出格式、导出设置、文本排版等方面进行分析。
1、图形复杂度
Visio中,图形的复杂度越高,导出至矢量图中时,可能出现遗漏、形变等问题。如下图所示,复杂的流程图中,导出的SVG文件中,一些线条发生了形变,严重影响了图像的可读性:
因此,在实际应用中,需要注意,尽量保持图形简单化,降低复杂度。
2、导出格式
Visio支持多种矢量图格式的导出,不同的格式对于不同的应用场景都有自己的优缺点。如下图所示,同样的流程图导出至不同格式下,显示效果有所不同:
通过对比,可以发现,在日常应用中,应根据实际需求,选择合适的图像导出格式。
3、导出设置
Visio导出矢量图时,不同的设置也会影响导出效果。如下图所示,同一流程图,根据导出时的设置不同,导出效果会有所区别:
因此,在实际应用中,需根据具体情况,选择恰当的设置,以保证导出效果。
4、文本排版
Visio库中自带了多种文本格式,如字体、字号、颜色等,而在导出至矢量图中时,这些文本信息的处理是需要特别注意的。如下图所示,在导出的SVG文件中,原有的文本样式没有得到很好的保留:
因此,为保证文本信息及样式的准确导出,需要注意使用通用字体,以保证矢量图中所有的字体都能准确显示。
四、总结
综上所述,Visio作为流程图制作的一款专业软件,其矢量图导出兼容性较高,文件质量较好。在导出矢量图时,可以根据需求选择不同的导出格式,在导出设置上进行优化,调整文本排版等,从而更好地实现对矢量图的导出。