Thursday, August 09, 2007

EPS图的生成以及PDF的字体嵌入问题

用 Visio 作的图不能直接导出 eps 文件,以前一直是先导出 wmf 或 emf 文件,再用 wmf2eps 转成 eps。这种方法有个缺点是,存成 wmf 时可能损失细节,比如虚线会变成实线。实际上安装 wmf2eps 时就得先装一个虚拟 ps 打印机,可以直接在 Visio 中用它打印出 eps 文件。但这样得到的文件中经常有讨厌的 Type 3 字体,暂时还没找到办法把它嵌入到 pdf 文件中。并且其精度还是没有 wmf 文件转换得到的高。另有建议是先在 Visio 中打印机出 pdf 文件,然后用 Acrobat 把它另存成 eps 文件。这种方法得到的图片效果最好,但是用默认配置转换得到的文件通常会比 wmf 方法大十来倍,也还没有找到好办法让它变小点。也试了用 pdf2all 把 pdf 转成 eps,它得到的是位图。

用虚拟打印机默认打印出来的是A4页面,对于 pdf 可以用 Acrobat 的裁剪工具(Advanced Editing Toolbar - Crop tool)去掉边上的空白;对于 eps 文件用 GSView 的 File - PS to EPS 就可以裁剪。实际上也可以先把 Visio 的页面尺寸设成"调整大小以适合绘图内容",然后在打印机高级选项里选择纸张规格为"PostScript自定义页面大小",将其设成实际图片的尺寸,这样得到的图片大小就正好合适。

虽然 Acrobat Distiller 的 Standard 配置选择了 Embed all fonts,但结果还是有很多常用的字体不会被嵌入到 pdf 中。用 IEEE 提供的 Distiller Settings 可以保证嵌入所有字体,当然前提是所有字体都能找到。或者用下面的命令行也行:
gswin32c -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dPDFSETTINGS=/printer -dCompatibilityLevel= 1.3 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=output.pdf input.ps

参考:
GSView怎么裁剪一个eps文件

No comments:

Post a Comment

Please let me know who you are.