2011-11-15 8 views
6

मैं .png फ़ाइलों की एक श्रृंखला में .ps फ़ाइल को कनवर्ट करने के लिए भूतस्क्रिप्ट का उपयोग करने की कोशिश कर रहा हूं, मुख्य रूप से क्योंकि मेरे पास सहनशील पीएस व्यूअर नहीं है।ghostscript (संभवतः भ्रष्ट इनपुट के साथ) पृष्ठ आकार में फ़िट करें

gs -dBATCH -dEPSCrop -dEPSFitPage -sDEVICE=png16m -r300 -dNOPAUSE -sOutputFile=neptune_111115_ob1-2_13pca_boloplots_%d.png neptune_111115_ob1-2_13pca_boloplots.ps 

(.ps फ़ाइल एक बहु-पृष्ठ उपसंहार है):

यह आदेश मैं का उपयोग किया है है।

आउटपुट आंशिक रूप से पृष्ठ से बाहर हैं। मैं छवियों को पृष्ठ के अंदर फिट करना चाहता हूं।

मैं उदाहरण फाइलों को शामिल कर सकता हूं, लेकिन वे बहुत बड़े हैं - क्या .ps फ़ाइल का कोई विशेष हिस्सा उपयोगी होगा?

मेरा संदेह यह है कि .ps फ़ाइल बाध्यकारी बॉक्स को गलत तरीके से निर्दिष्ट कर रही है, लेकिन बीबी मानों को हैक करने से कोई प्रभाव नहीं पड़ा। .ps फ़ाइल आईडीएल (इटविस 'इंटरएक्टिव डेटा लैंग्वेज) द्वारा लिखी गई है। मैंने उपरोक्त आदेश को बिना किसी भाग्य के-डीईपीएस * आदेशों के बिना भी कोशिश की है।

उत्तर

12

-dEPSCrop और -dEPSFitPage परस्पर अनन्य हैं:

  • एक BoundingBox टिप्पणी में निर्दिष्ट करने के लिए ईपीएस फसलों।
  • अन्य मीडिया को %%BoundingBox से ईपीएस को चालू मीडिया में फिट करने के लिए पीएस फ़ाइल की आंतरिक टिप्पणियों में निर्दिष्ट किया गया है।

आप वास्तव में एक ही समय में दोनों का उपयोग नहीं कर सकते हैं।

फ़ाइल किसी भी ईपीएस फ़ाइल नहीं हो सकती है, क्योंकि आपके पास ईपीएस फ़ाइल में एकाधिक पेज नहीं हो सकते हैं। तो वास्तव में न तो स्विच का कोई असर होगा (जैसा आपने पाया है)।

या तो पोस्टस्क्रिप्ट setpage या setpagedevice का उपयोग करके मीडिया आकार का अनुरोध करता है, या यह वर्तमान में सेट किए गए मीडिया का उपयोग करता है। मेरा अनुमान है कि यह सिर्फ मौजूदा मीडिया का उपयोग कर रहा है। -sPAPERSIZE=a4 और -sPAPERSIZE=letter सेट करने का प्रयास करें।

यदि यह काम करता है तो प्रोग्राम मीडिया आकार का अनुरोध नहीं करता है। यदि इसका कोई प्रभाव नहीं है, तो -dFIXEDMEDIA सेट करें जो मीडिया आकार को बदलने के बाद के अनुरोधों को अनदेखा कर देगा।

आपको सही मीडिया आकार निर्दिष्ट करने की अनुमति देनी चाहिए, अगर आपको नहीं पता कि मीडिया का आकार क्या होना चाहिए तो आप Ghostscript -sDEVICE=bbox डिवाइस का पता लगाने के लिए उपयोग कर सकते हैं।

आखिरकार, घोस्टस्क्रिप्ट में एक प्राथमिक डिस्प्ले डिवाइस है जिसका उपयोग आप पीएनजी पर जाने के बिना प्रस्तुत आउटपुट को देखने के लिए कर सकते हैं।

+0

धन्यवाद केन, यह नहीं पता था कि ईपीएस आदेशों ने वास्तव में क्या किया था। हालांकि, मैंने बिना भाग्य के पेपरसाइज और फिक्स्डमेडिया दोनों की कोशिश की है। जीएस दर्शक भी आंशिक रूप से पेज से आंकड़े दिखाता है। – keflavich

+0

मुझे आगे टिप्पणी करने के लिए फ़ाइल देखने की आवश्यकता होगी, लेकिन मैं नहीं देख सकता कि यह FIXEDMEDIA स्विच से कैसे बच सकता है। आपको दोनों तरफ से सेट करने की ज़रूरत है, और पहले PAPERSIZE सेट करें। Ghostscript का आप किस संस्करण का उपयोग कर रहे हैं? – KenS

संबंधित मुद्दे