2012-01-29 22 views
10

मैं mattotlib के साथ linux पर फ्रीसैन नामक एक टीटीएफ फ़ॉन्ट नामक एक फ़ॉन्ट का उपयोग कर रहा हूं।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") 

जब मैं किसी अन्य प्रोग्राम (मैक ओएस एक्स पर जैसे चित्रकार) पर इसे खोलने तो फॉन्ट प्रकट नहीं होता है और डिफ़ॉल्ट फ़ॉन्ट के बजाय प्रयोग किया जाता है, के बाद से FreeSans अनुपलब्ध है: के रूप में मैं अपने आंकड़ा पैदा करते हैं।

मैं इसे कैसे बना सकता हूं ताकि matplotlib प्रत्येक पीडीएफ में फ़ॉन्ट एम्बेड कर सके? अगर फ़ाइल बड़ी है तो मुझे कोई फर्क नहीं पड़ता। धन्यवाद।

उत्तर

2

क्या आप वाकई यह कर रहे हैं कि यह पहले से ही नहीं कर रहा है? वेबसाइट से:

matplotlib गणितीय भाव, रास्टर और वेक्टर आउटपुट, मनमाना रोटेशन के साथ न्यू लाइन अलग पाठ, और यूनिकोड समर्थन के लिए ट्रू टाइप समर्थन सहित उत्कृष्ट पाठ समर्थन, है। क्योंकि हम सीधे आउटपुट दस्तावेज़ों में फोंट एम्बेड करते हैं, उदाहरण के लिए पोस्टस्क्रिप्ट या पीडीएफ के लिए, स्क्रीन पर जो भी आप देखते हैं वह आपको हार्डकॉपी में मिलता है।

वापस दिन में, मैं उत्पादन एक .ps दस्तावेज़ के लिए इस्तेमाल किया और -dEmbedAllFonts=true विकल्प के साथ ps2pdf का उपयोग करें।

+0

लेकिन जब मैं चित्रकार में खोलने, यह FreeSans खोजने की कोशिश करता। यह कहता है कि फ़ॉन्ट मौजूद नहीं है और मुझे "एम्बेड" करने की पेशकश करता है, इस मामले में यह इलस्ट्रेटर के डिफ़ॉल्ट मैरीड प्रो फ़ॉन्ट का उपयोग करके पीडीएफ खोलता है। तो ऐसा लगता है कि फ्रीसैन एम्बेडेड नहीं है जब तक इलस्ट्रेटर खराब नहीं हो रहा है? – user248237dfsf

+2

एक्सपीडीएफ से पीडीएफओटी प्राप्त करने के लिए निश्चित चीज है और फिर इसे अपने पीडीएफ पर चलाएं। यह आपको बताएगा कि कौन से फ़ॉन्ट एम्बेड किए गए हैं। –

+0

@ user248237 फ़ॉन्ट एम्बेड किया गया है। हालांकि यह फ़ॉन्ट का पूरा सेट नहीं है (केवल वर्णित वर्ण)। यही कारण है कि इलस्ट्रेटर इसका उपयोग नहीं कर सकता है, क्योंकि यह सिस्टम फ़ॉन्ट के रूप में मौजूद नहीं है और केवल फ़ाइल में सीमित वर्णमाला के रूप में मौजूद है। – tiago

6

मैटलप्लिब के साथ पीडीएफ उत्पादन करते समय मुझे एक ही समस्या है।

दिलचस्प अगर मैं पीडीएफ में ट्रू टाइप का उपयोग कर निर्दिष्ट, फ़ॉन्ट एम्बेडेड किया जाएगा:

matplotlib.rc('pdf', fonttype=42) 
संबंधित मुद्दे