如何在matplotlib生成的PDF中嵌入字体?

时间:2012-01-29 16:56:03

标签: python pdf matplotlib

我正在使用matplotlib在linux上使用名为FreeSans的ttf字体。我创建了我的数字:

from matplotlib import rc
plt.rcParams['ps.useafm'] = True
rc('font',**{'family':'sans-serif','sans-serif':['FreeSans']})
plt.rcParams['pdf.fonttype'] = 42
plt.figure()
# plot figure...
plt.savefig("myfig.pdf")

当我在另一个程序(例如Mac OS X上的插图画家)上打开它时,字体不会出现,而是使用默认字体,因为FreeSans不可用。

我怎样才能使它成为matplotlib在其生成的每个PDF中嵌入字体?我不介意文件是否更大。感谢。

2 个答案:

答案 0 :(得分:10)

使用matplotlib生成pdf时遇到同样的问题。

如果我在pdf中使用TrueType指定有趣,则会嵌入字体:

matplotlib.rc('pdf', fonttype=42)

答案 1 :(得分:2)

你确定它还没有这样做吗?来自网站:

  

matplotlib具有出色的文本支持,包括数学   表达式,truetype支持栅格和矢量输出,换行符   具有任意旋转的分隔文本和unicode支持。因为   我们将字体直接嵌入到输出文档中,例如用于postscript   或PDF,你在屏幕上看到的是你在硬拷贝中得到的。

在当天,我曾经输出.ps文档,并使用ps2pdf选项使用-dEmbedAllFonts=true