Matplotlib导出并在Illustrator中打开的图表中无法编辑文本

24

我正在使用matplotlib绘制图表,并在Illustrator中进行编辑。很棒的是,我可以编辑线条,但文本也会以线条形式出现,所以我无法更改字体、编辑文本等。我已经导出为EPS、PDF和PS文件,但问题仍未解决。

我正在使用Mac OS X Snow Leopard系统上的Python 2.7.1及matplotlib版本1.0.1。

非常感谢提供的任何见解!我尝试了建议这里使用pdf2ps,但结果只是降低了图像质量,而没有将文本呈现为真正的文本。pdftops看起来更好一些,但仍然不能编辑文本结果。


你的意思是将文本转换为轮廓吗? - mcgrailm
它们被转换为矢量形状,当取消组合时,它们是每个字母形状的单独线条。 - mishaF
1个回答

28

如果你将pdf.fonttype设置为42 (TrueType)并导出为PDF格式,你可以在Acrobat/Illustrator中编辑文本。你可以在~/matplotlib/matplotlibrc文件中设置它:

pdf.fonttype : 42 # Output Type 3 (Type3) or Type 42 (TrueType)

...或动态地:

>>> import matplotlib as mpl
>>> mpl.rcParams['pdf.fonttype'] = 42

显然,它默认为Type3,而Acrobat/Illustrator无法处理。


Acrobat中的OCR无法正常工作。我的意思是,它在Acrobat中打开时转换了文本,但在保存并在Illustrator中打开后,它们仍然无法作为文本进行编辑... - mishaF
实际上,即使使用Acrobat,我也可以复制文本,但无法编辑。它(Acrobat)告诉我:“所选内容的全部或部分没有可用的系统字体...” - mishaF
2
@mishaF 我今天尝试了一下,显然你只要将pdf.fonttype设置为42就可以编辑文本。 - Zach Kelling
@zeekay,太好了!非常感谢你找出了解决方法!我尝试了你的答案中的动态版本,效果很棒。 - mishaF
这似乎无法与 mpl.rcParams['text.usetex'] = True 一起使用。 - Jan
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接