Visio转eps

by gaihf@水木

看了前人写的关于Visio转EPS的文章,但是实践过程中还是碰到几个棘手的问题。现在这些
问题终于解决了,把自己的一点体会分享给大家。

很多人习惯用Visio画图(包括me),但是Visio却不能导出EPS格式,所以只好借助于第三
方软件。通过Visio另存为*.emf格式然后用openoffice的Draw打开,可以导出为EPS格式。
导出时需要选中打开的图片,这样导出EPS之后就只包含*.emf图片的内容,不会有大片的空
白。但是用这个方法导出的EPS图片会走样,比如直线经常会断断续续的,我在Visio中加入
的“计算机”形状还会出现莫名其妙的阴影。也可能是我没有设置好吧。

还有另外一种更好的解决方案,导出的EPS文件十分完美。也就是通过acrobat打印机将
Visio图形打印成pdf,再经过gsview裁减。具体过程如下:

1. Visio画好图片后,在“文件/页面设置”中选择“页面尺寸”选项卡,然后选中“调整
大小以适合绘图内容”。

2. “文件/打印”,选择Adobe PDF打印机。点击“属性”,在“Adobe PDF设置”选项卡中
选择合适的纸张,将默认设置改成“高质量打印”,并将Visio文件打印成pdf。需要注意的
是纸张一定要足够大,否则可能会有一部分图片显示不出来。不必担心在pdf文件中图像周
围的白边,可以在下面的步骤中裁减。

3. 打开生成的pdf文件(通常是自动打开的),选择“文件/另存为”。把保存类型改成“
内嵌式 postscript(*.eps)”,这样会生成一个eps文件。

4. 用ACDSee打开生成的EPS文件,确认图像中该有的东西都有了。有的时候由于pdf打印的
图纸大小选择不当,可能会有一部分图片显示不出来。如果发生这样的问题,返回第2步重
新选择合适的纸张。

5. 将生成的eps文件用gsview打开,在media菜单中选择合适的纸张,使得所有的图像细节
都显示出来。在orientation中选择合适的方向,比如landscape等等。这一步一定要保证所
有的图像细节都在一张页面上显示出来,所以纸张大小不能太小,否则图片会分成几页显示

6. 选择“File/PS to EPS”,会弹出一个对话框,确保已经选中了“Automatically
calculate Bounding Box”,点击Yes,输入文件名保存即可。

将pdf另存的eps文件和gsview裁减的eps文件用纯文本编辑器打开,找到%%BoundingBox一行
,可以看到gsview已经将图片裁减了。

以上是自己的一点体会,在winxp、visio2003、adobe acrobat 7 pro.、GSview4.8中测试
无误。

boundingbox的四个参数是左下角的x,y,宽度和高度,可以根据需要用文本编辑程序改。

若实在不行,就把自己画的图拉伸,或者重新按照visio纸张大小在画一下!!!!

来自http://blog.sina.com.cn/s/blog_5e16f1770100fw8g.html

在LaTeX系统中,由于DVI 文件经常被转为PostScript 文件,所以LATEX 支持最好的是EPS 格式(Encapsulated Post-Script ,是PostScript 语言的子集)的图形。目前只有EPS 格式的图形在所有的TeX 系统中都能得到全面的支持。而其他的图形,如JPEG、PNG可以在某些系统中使用,这取决于所用的DVI 转换程序。因为一般最终要得到的都是PostScript 或者PDF格式的文件,因此先将图形转换为EPS 格式仍然是最有效、最方便的图形处理方法。

下面首先给出将Visio做出的VSD图转化为EPS方式的方法:
Visio格式的vsd图,在转换成LateX中eps格式时,经常会出现字符残缺的情况,下面是解决这种问题的办法:

1. 首先需要安装PostScript打印机(winsteng(PostScript printer drivers).exe),下载地址是在http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=1500&fileID=1438
2. 启动Visio,打开vsd图
3. (1)打开 "文件" 菜单的 "打印..." 菜单项,
(2)在打印对话框里,打印机名称选择 "Generic PostScript Printer",
(3)点属性按钮,打开属性对话框,
(4)点高级按钮,打开高级选项对话框,
(4)纸张规格里选择 "Letter",
(5)在 "PostScript选项" 的 "PostScript输出选项"里选择 "内嵌的PostScript(EPS)"
4.点确定、确定,回到打印对话框,
5.选择"打印到文件"复选框,并确定,
6.在弹出的"打印到文件"对话框输入文件名,记得扩展名要为.ps(如abc.ps),
7.用GSview打开abc.ps,
8.打开File菜单里的"PS to EPS"菜单项,按默认的选项(自动计算边框)
9.最后在另存为对话框里输入最终的eps文件名(如abc.eps)

from:http://blog.sciencenet.cn/blog-434633-564710.html

Visio文件转EPS文件的更多相关文章

  1. [LaTex]Visio文件转EPS文件[转]

    在LaTeX系统中,由于DVI 文件经常被转为PostScript 文件,所以LATEX 支持最好的是EPS 格式(Encapsulated Post-Script ,是PostScript 语言的子 ...

  2. 生成.eps文件方法

    生成.eps文件方法 背景: 要写论文了,图像的分辨率是一大痛点 方法一: 两步生成.eps文件 用visio 制作图形,保存为pdf格式: 直接用adobe acrobat 打开pdf,然后保存为. ...

  3. 解决VC++6.0打开文件或添加文件到工程出错的问题

    相信很多朋友在安装VC++6.0之后,发现无法使用打开文件命令.同时,打开了工程,却无法实现文件添加到工程的问题.一旦进行如此操作,便会出现应用程序错误,需要关闭应用程序.为此,不胜其烦.更有甚者,以 ...

  4. UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)

    前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...

  5. 从java文件和CS文件里查询方法使用次数工具

    前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...

  6. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  7. C#的Process类调用第三方插件实现PDF文件转SWF文件

    在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...

  8. Excel文件转plist文件出现的文件编码问题

    今天在测试时遇到了需要将大量整理好的Excel数据转换为plist文件的情况.百度了一下教程,发现虽然别人也遇到过类似的情况,但是有些讲的还是不够细致.所以做如下整理.   百度到的内容中有使用Mes ...

  9. 使用java读取文件夹中文件的行数

    使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...

随机推荐

  1. SQL视频总结

    SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.SQL被作为关系型数据库管理系统的标准语言. SQ ...

  2. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

  3. 【bzoj3173】[Tjoi2013]最长上升子序列 Treap

    题目描述 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 输入 第一行一个整数N,表示我们要 ...

  4. Codeforces 165E Compatible Numbers(二进制+逆序枚举)

    E. Compatible Numbers time limit per test 4 seconds memory limit per test 256 megabytes input standa ...

  5. BZOJ1855 [Scoi2010]股票交易 【单调队列优化dp】

    题目链接 BZOJ1855 题解 设\(f[i][j]\)表示第\(i\)天结束时拥有\(j\)张股票时的最大收益 若\(i \le W\),显然在这之前不可能有交易 \[f[i][j] = max\ ...

  6. vs2008升级正式版

    1.VS2008简体中文正式版序列号 1.Visual Studio 2008 Professional Edition: XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT 2.Visual ...

  7. 解决jquery与zepto等其它库冲突兼容的问题

    解决jquery与zepto等其它库冲突兼容的问题;(function ($) {    }) (jQuery); ;(function ($) {    }) (Zepto); 在Bootstrap ...

  8. BAT脚本编写教程入门提高篇

    BAT脚本编写教程入门提高篇 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”. %[1-9]表示参数,参数是指在运行批处理 ...

  9. Redis特性

    Redis特性和应用场景 Redis特性 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度非常快.官方提供的数据表明,在一个普通的Linux机器上,Redis读写速度分别达到 ...

  10. 关于each()、find()、filter()遍历节点的操作方法

    关于each().find().filter()遍历节点的操作方法 each语法: each(fn)  ; 返回值:jQuery fn:代表对于每个匹配元素所要执行的函数 each()方法共有三种形式 ...