यदि आप केवल दो पीडीएफ फाइलों को बिना किसी सामग्री के पुनर्संसाधन के रूप में बदलना चाहते हैं, तो pdftk
यह आपके लिए है। (Mac OS X पर यह MacPorts या Fink के माध्यम से उपलब्ध होना चाहिए, लिनक्स के लिए, सभी प्रमुख वितरणों के लिए देशी पैकेज हैं; Windows के लिए, यहां देखें। ) यह कोशिश करें:
pdftk title.pdf content.pdf cat output book.pdf
यह content.pdf शीर्षक शीर्षक को आगे बढ़ाएगा और परिणाम को book.pdf में लिखेगा ।
pdftk
एक "गूंगा" है, लेकिन दो (या अधिक) पीडीएफ फाइलों को संक्षिप्त करने का बहुत तेज़ तरीका है। "डंब" अभी तक, जैसा कि पीडीएफ डेटा स्ट्रीम की pdftk
किसी भी तरह से व्याख्या नहीं करता है, यह सिर्फ यह सुनिश्चित करता है कि आंतरिक ऑब्जेक्ट संख्या आवश्यकतानुसार फिर से फेरबदल की जाए और पीडीएफ xref
संरचना में दिखाई दे (जो मूल रूप से एक प्रकार का पीडीएफ टूसी है) वस्तुओं)।
Ghostscript:
यदि आप घोस्टस्क्रिप्ट का उपयोग करना चाहते हैं, तो एक ही दो फाइलों को संक्षिप्त करने के लिए मूल कमांड होगी:
gs \
-o book.pdf \
-sDEVICE=pdfwrite \
title.pdf \
content.pdf
हालाँकि, जैसा कि आपने अनुभव किया, यह सरल कमांड लाइन आपकी छवि गुणवत्ता को गड़बड़ कर सकती है। कारण यह है कि घोस्टस्क्रिप्ट 'डंप' नहीं है जब यह पीडीएफ को संसाधित करता है: यह पूरी तरह से उन्हें पढ़ते समय व्याख्या करता है, और परिणाम लिखते समय पूरी तरह से नई फ़ाइल बनाता है। परिणाम बनाने के लिए, यह स्वचालित रूप से समग्र प्रसंस्करण में बहुत सारे विवरणों के लिए डिफ़ॉल्ट सेटिंग्स का उपयोग करेगा। ये डिफॉल्ट उन सभी मामलों के लिए लागू होंगे जहां इसके चालान में घोस्टस्क्रिप्ट को अन्यथा निर्देश नहीं दिया गया था।
इसलिए नई किताब बनाने के लिए घोस्टस्क्रिप्ट की विधि। Pdf 'मेथड' की तुलना में बहुत अधिक "बुद्धिमान" (लेकिन बहुत धीमी है) है pdftk
। (यह भी कारण है कि कई मामलों में घोस्टस्क्रिप्ट कई सीमाओं में सक्षम है - "मरम्मत" b0rken पीडीएफ फाइलें, या आउटपुट पीडीएफ में फोंट एम्बेड करने के लिए जो इनपुट पीडीएफ में एम्बेडेड नहीं हैं, या डुप्लिकेट छवियों को हटाने के लिए, प्रतिस्थापित कर रहे हैं उन्हें केवल संदर्भों द्वारा, आदि - और समग्र रूप से छोटे, बेहतर अनुकूलित फ़ाइलों से फूला हुआ इनपुट PDFs ...)
इसका मतलब यह है कि घोस्टस्क्रिप्ट अपनी डिफॉल्ट का उपयोग न करें: कमांड लाइन में अधिक कस्टम पैरामीटर जोड़कर।
इसका क्या मतलब है "घोस्टस्क्रिप्ट '' अपने पीडीएफ इनपुट" की व्याख्या करता है ?
फ़ाइल और उसकी सामग्री (ऑब्जेक्ट्स, स्ट्रीम, फोंट, इमेज, ...) के सभी को उसके पीडीएफ ऑब्जेक्ट्स के साथ फिर से परिणामित पीडीएफ को थूकने से पहले, अपने स्वयं के आंतरिक प्रतिनिधित्व में पढ़ा, जांचा और धारण किया जाता है। हालांकि, जब 'बाहर थूकना' होता है, तो घोस्टस्क्रिप्ट अपनी सभी आंतरिक डिफ़ॉल्ट सेटिंग्स को सैकड़ों मापदंडों [*] के लिए लागू करेगा, जो वहां उपलब्ध हैं।
दुर्भाग्य से, यह इन डिफ़ॉल्ट सेटिंग्स के अनुसार छवियों के आपके "पुनर्प्रसंस्करण" का कारण बनता है - जिसे केवल अपने स्वयं के (वांछित) कमांडलाइन मापदंडों को जोड़कर टाला या ओवरराइड किया जा सकता है।
JPEG2000 छवियों को JPEG एन्कोडिंग में फिर से एनकोड करने के लिए घोस्टस्क्रिप्ट की आवश्यकता (लाइसेंसिंग मुद्दों के कारण) के कारण आपकी छवि समस्याएं हो सकती हैं। यदि आप इससे बचना चाहते हैं, तो अपनी कमांडलाइन में निम्नलिखित जोड़ें:
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
-dColorImageFilter=/FlateEncode \
-dGrayImageFilter=/FlateEncode \
शामिल करने के लिए विचार करने के लिए अन्य छवि से संबंधित कमांडलाइन विकल्प हैं:
-dColorConversionStrategy=/LeaveColorUnchanged \
-dDownsampleMonoImages=false \
-dDownsampleGrayImages=false \
-dDownsampleColorImages=false \
तो पूरी भूतहा कमांडलाइन जो आपको खुश कर सकती है उसे पढ़ना चाहिए:
gs \
-o book.pdf \
-sDEVICE=pdfwrite \
-dColorConversionStrategy=/LeaveColorUnchanged \
-dDownsampleMonoImages=false \
-dDownsampleGrayImages=false \
-dDownsampleColorImages=false \
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
-dColorImageFilter=/FlateEncode \
-dGrayImageFilter=/FlateEncode \
title.pdf \
content.pdf
आप इस कमांडलाइन का उपयोग करके भूत पीडीएफ को आउटपुट पीडीएफ में छवियों को संपीड़ित करने के लिए नहीं कह सकते हैं :
gs \
-o book.pdf \
-sDEVICE=pdfwrite \
-dColorConversionStrategy=/LeaveColorUnchanged \
-dEncodeColorImages=false \
-dEncodeGrayImages=false \
-dEncodeMonoImages=false \
title.pdf \
content.pdf
।
[*]:
यदि आप डिफ़ॉल्ट सेटिंग्स की पूरी सूची के बारे में जानना चाहते हैं, जो घोस्टस्क्रिप्ट के पीडीएफ़राइट डिवाइस का उपयोग कर रहा है , तो निम्न कमांड चलाएँ। यह आपको पूरी सूची लौटाता है :
gs \
-sDEVICE=pdfwrite \
-o /dev/null \
-c "currentpagedevice { exch ==only ( ) print == } forall"
इन सभी मापदंडों का क्या मतलब है, इसके बारे में स्पष्टीकरण के लिए, आपको "डिस्टिलर पैरामीटर्स" के बारे में एडोब प्रलेखन में पढ़ना होगा । भूतनी इन सभी की नकल करने की बहुत कोशिश करती है ...