2010-04-16 19 views
6

अनुकूलित करना तो मेरे पास जावा और आईटेक्स्ट का उपयोग करके एक रिपोर्ट सिस्टम बनाया गया है। स्क्रैपस का उपयोग करके पीडीएफ टेम्पलेट बनाए जाते हैं। जावा कोड iText का उपयोग कर दस्तावेज़ में डेटा विलीन करता है। फ़ाइलों को तब एक एनएफएस शेयर पर कॉपी किया जाता है, और एक बीएसएचएच स्क्रिप्ट उन्हें प्रिंट करता है।लिनक्स पीडीएफ/पोस्टस्क्रिप्ट

मैं उन्हें पीएस में बदलने के लिए एक्रोराड का उपयोग करता हूं, फिर पीएसपी को पीआरपी करता हूं।

एफओएसएस आवेदन पीडीएफटीपीएस बेहद अक्षम है।

मेरी मुख्य समस्या यह है कि आईटीक्स्ट/स्क्रिबस का उपयोग करके उत्पन्न पीडीएफ बहुत बड़ा है। और मैंने हाल ही में समस्या में भाग लिया है जहां Acroread pukes क्योंकि यह बड़े (300+ पृष्ठों) दस्तावेज़ों पर 4 जीबी मेम उपयोग को हिट करता है। (64 बिट पर सामान अपडेट करने पर एडोब दर्दनाक रूप से धीमा है)।

अब मैं विंडोज़ पर एडोब रीडर का उपयोग कर सकता हूं, और फ़ाइल आकार विकल्प को घटा सकता हूं या जिसे भी कहा जाता है, और यह बहुत (> 10x) पीडीएफ के आकार को कम करता है (यह फॉर्म फ़ील्ड के बारे में मेटाडेटा को हटा देता है और ऐसा प्रकट होता है) और एक पीडीएफ उत्पन्न करता है जो मूल रूप से एक प्रिंट छवि है।

मेरा प्रश्न किसी को भी लिनक्स पर कुछ ऐसा करने के लिए एक अच्छा समाधान/कार्यक्रम के बारे में पता है। आदर्श रूप में, यह पीडीएफ को अनुकूलित करेगा, आकार कम करेगा, और पीएस जटिलता को कम करेगा ताकि प्रिंटर तेजी से प्रिंट कर सके क्योंकि इसमें अभी प्रिंट करने के लिए लगभग 15-20 सेकंड लगते हैं।

+0

स्क्रिबस को अच्छा पीडीएफ बनाना है, iText भी अच्छी तरह से सम्मानित है। pdftops, ओटीओएच, मूल रूप से पोस्टस्क्रिप्ट में एक वेक्टरलिस्ट उत्सर्जित करता है, लगभग सबसे खराब संभव तरीका। आपको पोस्टस्क्रिप्ट की आवश्यकता क्यों है? – Javier

+0

को संभालने के लिए पीडीएफ बहुत आसान है मैं वास्तव में पीडीएफटीपीएस का उपयोग नहीं कर रहा हूं, मैं एक्रोराड का उपयोग कर रहा हूं। और मैं प्रिंटर को मुद्रित करने के लिए पीएस का उपयोग कर रहा हूं जो सीधे पीडीएफ प्रिंटिंग का समर्थन नहीं करता है। –

+0

प्रिंटर-विशिष्ट समस्याओं की देखभाल करते समय आप पीडीएफ प्रिंट करने के लिए सीयूपीएस का उपयोग कर सकते हैं। – Javier

उत्तर

4
gs \ 
    -dCompatibilityLevel=1.4 \ 
    -dPDFSETTINGS=/screen \ 
    -dNOPAUSE \ 
    -dBATCH \ 
    -sDEVICE=pdfwrite \ 
    -sOutputFile=output.pdf \ 
    input.pdf 

घोस्टस्क्रिप्ट इस मुद्दे के लिए सबसे अधिक काम करता प्रतीत होता है। मुझे एम्बेडेड फ़ॉन्ट्स को घुमाने वाले भूत-लिस्ट के साथ एक अलग समस्या है, लेकिन मैं इसके लिए एक नया प्रश्न खोलूंगा।

+2

आप किस Ghostscript संस्करण का उपयोग कर रहे हैं? क्या आप जानते हैं कि 'स्क्रीन' स्क्रीन पर प्रतिपादन के लिए उपयुक्त हो सकती है, लेकिन आपकी छवियों को कम रिज़ॉल्यूशन (72 डीपीआई) में फिर से नमूना देती है, लेकिन जो आपको प्रिंटर पर प्रिंट गुणवत्ता के मुद्दों दे सकती है? –

4

पीडीएफ फाइल के आकार को कम करने के लिए, pdfsizeopt का उपयोग करें, जो सॉफ्टवेयर मैं विकसित कर रहा हूं। pdfsizeopt लिनक्स, मैक ओएस एक्स, विंडोज़ (और संभवतः अन्य सिस्टम पर भी) पर चलता है।

pdfsizeopt में बहुत सारी निर्भरताएं हैं, इसलिए यह स्थापित करने में थोड़ा बोझिल हो सकता है (आपके समय के लगभग 10 मिनट)। मैं स्थापना को आसान बनाने पर काम कर रहा हूं।

यदि आपको कुछ जल्दी चाहिए, तो आप इसकी निर्भरताओं में से किसी एक को आजमा सकते हैं: बहुविकल्पीय tool.pdf.Compress, जो एक शुद्ध जावा उपकरण है।

Multivalent20060102.jar जाओ, जावा स्थापित करने और चलाने के

java -cp Multivalent20060102.jar tool.pdf.Compress input.pdf 

सीमाओं क्या पर gs -sDEVICE=pdfwrite कर सकते हैं कर रहे हैं:

  • यह xref धाराओं उत्पन्न नहीं कर सकते (ताकि पीडीएफ आवश्यक से भी बड़ा हो जाएगा)
  • यह ऑब्जेक्ट स्ट्रीम उत्पन्न नहीं कर सकता है (इसलिए पीडीएफ आवश्यक से बड़ा होगा)
  • यह छवियों या ot deduplicate नहीं करता है उसकी वस्तुएं (यानी, अगर एक ही छवि इनपुट पीडीएफ में कई बार प्रदर्शित होने, जी एस प्रत्येक घटना के लिए उत्पादन में एक प्रतिलिपि बनाता है)
  • यह छवियों का उत्सर्जन करता है suboptimally
  • इसे फिर से नमूने कम संकल्प के लिए छवियों को
  • यह कभी कभी में हाइपरलिंक को छोड़ देता है पीडीएफ
  • यह कुछ निर्माणों परिवर्तित नहीं कर सकते (ताकि उत्पादन पीडीएफ इनपुट से नेत्रहीन अलग हो सकता है)

न तो pdfsizeopt है और न ही multivalent के tool.pdf.Compress इन सीमाओं से ग्रस्त हैं।