2012-01-29 17 views
10

Estoy usando una fuente llamada fuente ttf llamada FreeSans en Linux con matplotlib. Creo mi figura como:cómo incrustar fuentes en PDF producidos por matplotlib?

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

cuando lo abro en otro programa (por ejemplo, ilustrador en Mac OS X), entonces no aparece la fuente y la fuente predeterminada se utiliza en su lugar, ya que FreeSans no está disponible.

¿Cómo puedo hacer para que matplotlib incruste la fuente en cada PDF que produce? No me importa si el archivo es más grande. Gracias.

Respuesta

2

¿Estás seguro de que no lo está haciendo ya? Desde el sitio web:

matplotlib tiene un excelente soporte de texto, incluyendo matemáticas, expresiones de apoyo TrueType para las salidas de trama y vectoriales, nueva línea de texto separado con rotaciones arbitrarias y soporte Unicode. Como insertamos las fuentes directamente en los documentos de salida, por ejemplo, para postscript o PDF, lo que ve en la pantalla es lo que obtiene en la copia impresa.

vuelta en el día, solía salida de un documento .ps y uso ps2pdf con la opción -dEmbedAllFonts=true.

+0

Pero cuando lo abro en ilustrador, se trata de encontrar FreeSans. Dice que la fuente no existe y me ofrece "incrustarla", en cuyo caso abre el PDF con la fuente Myriad Pro predeterminada de Illustrator. ¿Entonces no parece que FreeSans está incrustado a menos que Illustrator esté arruinando? – user248237dfsf

+2

Lo definitivo a hacer es obtener pdffonts de Xpdf y luego ejecutarlo en su pdf. Le dirá qué fuentes están incrustadas. –

+0

@ user248237 la fuente está incrustada. Sin embargo, no es un conjunto completo de la fuente (solo los caracteres utilizados). Es por eso que Illustrator no puede usarlo, porque no existe como una fuente del sistema y solo como un juego de caracteres limitado en el archivo. – tiago

6

Tengo el mismo problema al producir pdf con matplotlib.

interesante si especifico usando TrueType en PDF, se incrustará la fuente:

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