2009-07-25 12 views
8

पर स्रोत ASCII फ़ाइलों को कनवर्ट करना मैं ईपीयूबी के साथ, प्रिंट, पीडीएफ, और किंडल/MOBI में तकनीकी पुस्तकें प्रकाशित करता हूं।जेपीईजी

किंडल मोनोस्पेस फोंट का समर्थन नहीं करता है, जो स्रोत कोड लिस्टिंग के लिए थोड़े उपयोगी हैं। मोनोस्पेस फोंट करने का एकमात्र तरीका टेक्स्ट (जावा स्रोत, एचटीएमएल, एक्सएमएल, इत्यादि) को जेपीईजी छवियों में परिवर्तित करना है। अधिक विशेष रूप से, अंकन के मुद्दों के कारण, एक दिए गए इनपुट ASCII फ़ाइल को ~ 6 लाइनों के स्लाइस में विभाजित करने की आवश्यकता होती है, प्रत्येक टुकड़ा एक जेपीईजी में बदल जाता है, इसलिए लिस्टिंग स्क्रीन को फैल सकती है। यह एक शाही दर्द है।

ऐसा करने के लिए मेरे वर्तमान तंत्र शामिल है:

  1. expand चल रहा है एक सुसंगत 2-अंतरिक्ष टैब आकार, जो पाइप के लिए ...
  2. a2ps, जो पाइप करने के लिए सेट करने के लिए ...
  3. एक "%%LanguageLevel: 3\n" लाइन जोड़ने के लिए एक छोटा पर्ल स्निपेट, जो पाइप ...
  4. छवि मैगिक convert, (ई) पीएस लेने और उचित पृष्ठभूमि के साथ जेपीईजी बनाने के लिए, 575x148+5+28 आदि पर फसल,

वह 100% समय काम करता था। यह अब 95% समय काम करता है। शेष समय, मुझे convert: geometry does not contain image त्रुटियां मिलती हैं, जिन्हें मैं छुटकारा पाने के लिए प्रतीत नहीं कर सकता, क्योंकि मुझे समझ में नहीं आता कि समस्या क्या है।

इस प्रक्रिया से पहले, मैं स्रोत कोड से HTML प्राप्त करने के लिए एक सुंदर प्रिंट इंजन (source-highlight) का उपयोग करता था ... लेकिन फिर एकमात्र चीज जिसे मैं HTML को जेपीईजी में परिवर्तित करने के लिए पा सकता था, स्क्रीन- एक एम्बेडेड गेको इंजन से पकड़ता है। विश्वसनीयता बदबू आ रही है, यही वजह है कि मैंने अपने वर्तमान तंत्र में स्विच किया।

तो, यदि आप थे, तो आपको स्वचालित सूची में स्रोत सूची को जेपीईजी छवियों में बदलने की आवश्यकता है, तो आप इसे कैसे करेंगे? बोनस पॉइंट्स अगर यह किसी प्रकार की सुंदर प्रिंट प्रक्रिया प्रदान करता है (उदाहरण के लिए, बोल्ड किए गए कीवर्ड)!

या, यदि आप जानते हैं कि आमतौर पर convert: geometry does not contain image का कारण क्या होता है, तो इससे मदद मिल सकती है। मेरी वर्तमान प्रक्रिया बदसूरत है, लेकिन अगर मैं इसे वापस 100% विश्वसनीयता प्राप्त कर सकता हूं, तो यह अभी ठीक होगा।

अग्रिम धन्यवाद!

उत्तर

8

आप html2ps और फिर imagemagick के रूपांतरित करने पर विचार कर सकते हैं।

एक विचार: यदि आपका लक्ष्य (किंडल?) पीएनजी का समर्थन करता है, तो इस पाठ प्रतिपादन के लिए जेपीईजी की वरीयता में इसका उपयोग करें।

+0

इसमें कुछ वादा है। मुझे पूरा यकीन है कि मैं उस रास्ते से पहले नीचे गया और इसे छोड़ दिया, लेकिन मैं भूल गया क्यों, और मेरे प्रारंभिक परीक्षणों से पता चलता है कि यह ठीक काम कर सकता है। मैं इस समाधान कार्यों की पुष्टि करने के लिए कल या सोमवार को जाने की कोशिश करूंगा। धन्यवाद! – CommonsWare

+0

कोई पासा नहीं। एक ही आवृत्ति के बारे में एक ही छवि मैगिक त्रुटि प्राप्त करना। एक पोस्टस्क्रिप्ट इनपुट चीज होना चाहिए। – CommonsWare

+5

असल में, आगे के प्रयोगों से पता चला कि त्रुटि केवल HTML2ps समाधान के साथ होती है, जब स्रोत फ़ाइल ने व्हाइटस्पेस का पीछा किया था जिससे प्रभावी रूप से खाली छवि बनने का कारण बन गया था। तो, यह काम करता है! बहुत धन्यवाद! – CommonsWare

0

आपके लिनक्स वितरण में पेंगो-व्यू और फोंट का वर्गीकरण शामिल हो सकता है। यह मेरा FC6 सिस्टम पर काम करता है:

pango-view --font=DejaVuLGCSansMono --dpi=200 --output=/tmp/text.jpg -q /tmp/text 

आपको लगता है कि आपके सिस्टम पर स्थापित किया गया है एक monospaced फ़ॉन्ट की पहचान करने की आवश्यकता होगी। /usr/share/fonts/ के आसपास देखो।

पेंगो यूनिकोड का समर्थन करता है।

जब आप प्रयोग कर रहे हों तो -q छोड़ दें, यह फ़ाइल की बजाय विंडो पर प्रदर्शित होगा।

0

जेपीईजी का प्रयोग न करें। यह तस्वीरों के लिए अनुकूलित है और पाठ और रेखा कला के साथ एक भयानक काम करता है। इसके बजाय gif या png का प्रयोग करें।मेरी समझ यह है कि gif अब पेटेंट मुक्त है, इसलिए मैं इसका उपयोग करूँगा।

+2

जलाने पर कोई विकल्प नहीं - जेपीईजी या बस्ट। – CommonsWare

1

html2ps एक उत्कृष्ट कार्यक्रम है - मैंने इसे एक बार 1300 पेज की किताब बनाने के लिए उपयोग किया, लेकिन अगर आप केवल सादे पाठ -> पोस्टस्क्रिप्ट चाहते हैं तो यह अधिक है। इसके बजाय आस्क्रिप्ट पर विचार करें।

1

क्योंकि एचटीएमएल को जेपीजी में परिवर्तित करने का सवाल उत्तर दिया गया है, मैं सुंदर प्रिंटर पर एक सुझाव प्रदान करूंगा। मुझे Pygments बहुत बढ़िया होने के लिए मिला है। यह विभिन्न विषयों का समर्थन करता है और वहां किसी भी भाषा के लिए लेक्सर्स हैं (वे इस तथ्य का विज्ञापन करते हैं कि यह brainfuck पर भी प्रकाश डाला गया है)। एक कमांड लाइन उपकरण है और यह अधिकांश लिनक्स डिस्ट्रोज़ पर उपलब्ध है।