如何解决 SolidWorks 批量转PDF格式时字体问题?

如题的问题通常的表现有中文不显示,文字空白,字体被替换等,可能的原因:

  1. 工程图中没有统一字体,以及相关的字体实际缺失,特别是中文字体;
  2. 所用的字体不支持TrueType。

我们在使用SolidWorks工程图的时候有时使用的模版内设定的字体是英文字体(通常英文字体只包含字母、数字和一些符号,字体文件尺寸都比较小),所以,按照常理是无法正常显示中文的,就像AutoCAD常常显示乱码一样。但是,在 SolidWorks中查看工程图的时候事实是可以显示中文的,这是因为SolidWorks调用了系统的默认中文字体。这个默认的字体,不同操作系统会有所不同。

替换字体

(图为 SolidWorks 2017 ,字体缺失会给出提示,但老版本不会,直接自动替换)

通过 SolidWorks 转换成PDF文件的时候,SolidWorks 会处理字体,还有语言的编码。在非英文语言的情况下,只有正确的语言使用正确的字体才能正常显示。所以当 SolidWorks 发现字体有问题的时候就会自动把没有字体的文字转换为 Arial Unicode MS 这个Unicode字体,因为这个字体是Unicode的,就和语言无关了,所以这个字体文件也比较大,可以显示各种文字。但缺点是很多系统都没有这个字体。所以,最终PDF中部分文字还是会丢失。

好了,上面解释这么多,解决的办法有三个:

1、安装 Arial Unicode MS 这个Unicode字体。根据微软的介绍,这个字体是随MS Office 一起发行的,但默认并不会安装。目前这个字体有两个版本,文字包含比较全面的是 22MB 大小的版本。

微软的介绍如下:https://www.microsoft.com/typography/fonts/font.aspx?FMID=1081

安装方法:https://support.microsoft.com/en-us/kb/287247

那么,应该只要完整的安装Office(包括附件字体),系统就会带有这个字体了。

如果没有这个字体也可以到这里下载:http://ftp.heanet.ie/disk1/disk1/disk1/sourceforge/a/al/allfonts/ARIALUNI.TTF,然后手动安装或者直接复制到 c:windowsfonts 目录下面。

当然,这个并不是最好的办法,毕竟字体被替换了,而 Arial Unicode MS 并不一定是我们期望的字体。

2、转PDF的时候通过虚拟机打印来转换。因为打印是按照显示来的,无关字体,只要在SolidWorks中能显示,打印出来就有,所以这也算是一个解决方法。但这个方法也有一些问题,比如虚拟打印机有时出现这样那样的问题。《批量打印成PDF时不用每次点击保存位置的技巧

3、推荐的方法: 修改 SolidWorks 的图纸格式和绘图标准,将字体统一改成中文字体。因为,中文字体是包含英文显示的,SolidWorks 2012以及以上版本推荐使用自带的汉仪长仿宋。这样一方面是的图纸的字体统一,更加美观,同时符合国标,也解决了转PDF文字缺失的问题。

修改字体主要是4个方面:

首先,是修改图纸格式,图纸格式里面规定了一个文字引用的字体,比如标题栏的字体等。图纸格式一般有很多个模版,需要全部修改。

其次,需要修改工程图的绘图标准,这个规定了一些标注类的字体,然后将其导出成为绘图标准文件。

最后是修改现有的所有工程图,我有很多工程图,全部改字体太麻烦了,怎么办?这个的确很麻烦,当然了,图纸格式的修改是必须的,从A0~A4,还有一个工程图绘图标准,总共6个文件是必须手动修改好的。然后用LiteTools的批量替换工程图的绘图标准工具就好了,这个比较轻松,方法看这里:《批量替换SolidWorks工程图格式和绘图标准》

最后的最后,在转PDF的时候选上“嵌入字体”这个选项。

pdf