2012-01-29 31 views
10

Matplotlib ile linux üzerinde FreeSans adında bir ttf font adlı yazı tipini kullanıyorum.matplotlib tarafından üretilen PDF'lerde yazı tiplerini nasıl gömebilirim?

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") 

Sonra yazı görünmüyor başka bir program (Mac OS X'te örneğin illüstratör) üzerinde açtığınızda ve varsayılan yazı yerine kullanılan FreeSans kullanılamaz beri,: olarak benim figürü oluşturmak.

Matplotlib'in yazdığı her PDF'de yazı tipini katıştırması için bunu nasıl yapabilirim? Dosya daha büyük ise umurumda değil. Teşekkürler.

cevap

2

Bunu zaten yapmadığından emin misiniz? Web sitesinden:

matplotlib matematiksel ifadeler, raster ve vektör çıkışları, keyfi rotasyonlar ile yeni satır ayrılmış metin ve Unicode desteği için TrueType desteği dahil olmak üzere mükemmel metin desteği vardır. , yazı tiplerini doğrudan çıktı belgelerine gömdüğümüzden, örn. PostScript veya PDF için, ekranda gördüğünüz şey basılı kopyaya aldığınızdır.

Eskiden, ben bir .ps belgeye çıktı için kullanılan ve -dEmbedAllFonts=true seçeneğiyle ps2pdf kullanın.

+0

Ama illüstratör açtığınızda, bu FreeSans bulmaya çalışır. Yazı tipinin mevcut olmadığını ve bana "gömdüğünü" sağladığını ve bu durumda Illustrator'ın varsayılan Myriad Pro yazı tipini kullanarak PDF'yi açtığını söylüyor. Bu yüzden, Illustrator uygulaması hata yapmadan FreeSans gömülü gibi görünmüyor mu? – user248237dfsf

+2

Yapılması gereken en önemli şey, pdf'leri Xpdf'den almak ve daha sonra pdf'inizde çalıştırmaktır. Hangi yazı tiplerinin gömüldüğünü size söyleyecektir. –

+0

@ user248237 yazı tipi gömülü. Ancak, yazı tipinin tam bir kümesi değil (yalnızca kullanılan karakterler). Bu yüzden Illustrator bunu kullanamaz, çünkü bir sistem fontu olarak ve sadece dosyada sınırlı bir karakter kümesi olarak mevcut değildir. – tiago

6

Matplotlib ile pdf oluştururken de aynı problemi yaşıyorum. İlginç

ben pdf TrueType kullanarak belirtirseniz, yazı tipi gömülü olacak:

matplotlib.rc('pdf', fonttype=42) 
İlgili konular