कैसे पता करें कि कोई पीडीएफ फाइल कंप्रेस्ड है या नहीं और (अन) इसे कंप्रेस करें


18

मैंने अभी-अभी जाना कि पीडीएफ फाइलें अपने डिस्क आकार को कम करने के लिए संकुचित की जा सकती हैं।

  1. मैं सोच रहा था कि कैसे पता चलेगा कि एक पीडीएफ फाइल पहले से ही संपीड़ित है?
  2. एक पीडीएफ फाइल को संपीड़ित करने या अनसुना करने के लिए किन एप्लिकेशन / कमांड का उपयोग किया जा सकता है?

मेरा वातावरण लिनक्स उबंटू 10.10 है।


कुछ प्रयास संतोषजनक परिणाम नहीं देते हैं:

  1. यहाँ कोशिश करने के परिणाम हैं pdftk:

    $ pdftk 3.pdf output 5.pdf uncompress 
    $ pdftk 3.pdf output 3comp.pdf compress 
    $ ls -l 3.pdf 3comp.pdf 5.pdf
    -rwxrwx--- 1 root plugdev  8652269 2011-07-30 12:27 3comp.pdf
    -rwxrwx--- 1 root plugdev  8652319 2011-07-29 22:15 3.pdf
    -rwxrwx--- 1 root plugdev 16829828 2011-07-30 12:27 5.pdf
    

    फाइलों के गुण बताते हैं कि वे सभी अनुकूलित नहीं हैं।

  2. पीएस में परिवर्तित करने के परिणाम और फिर पीडीएफ में वापस:

    $ pdf2ps 3.pdf 3.ps
    $ ps2pdf 3.ps 3c.pdf
    $ ls -l 3.pdf 3.ps 3c.pdf
    -rwxrwx--- 1 root plugdev   8808946 2011-07-30 13:14 3c.pdf
    -rwxrwx--- 1 root plugdev   8652319 2011-07-29 22:15 3.pdf
    -rwxrwx--- 1 root plugdev 122375966 2011-07-30 13:14 3.ps
    

मैं अभी इसका परीक्षण नहीं कर सकता, क्योंकि मेरे पास हाथ में एक संपीड़ित पीडीएफ नहीं है, लेकिन कोशिश करो file। यह दिखाना चाहिए कि फ़ाइल संपीड़ित है या नहीं।
पोलीमोन

1
@ पोलेमोन: धन्यवाद! यह नहीं है आउट का पुट $file 3.pdfहै3.pdf: PDF document, version 1.4
StackExchange for All

ध्यान दें कि पीडीएफ फाइल में अलग-अलग धाराएं संपीड़ित हो सकती हैं। तो यह पूछना "पूरी पीडीएफ फाइल संपीड़ित है" गलत सवाल है (हालांकि कई मामलों में, या अधिकांश धाराएं या तो संकुचित या असम्पीडित होंगी)।
dirkt

जवाबों:


30

संक्षेप में:

यह जानने के लिए कि क्या यह पहले से संपीड़ित है:

strings your.pdf | grep /Filter

(एक) एक पीडीएफ सेक करने के लिए, QPDF का उपयोग करें

qpdf --stream-data=compress your.pdf compressed.pdf
qpdf --stream-data=uncompress compressed.pdf uncompressed.pdf  

स्पष्टीकरण:

एक पीडीएफ फाइल के अंदर "फ़िल्टर" कीवर्ड उपयोग की गई संपीड़न विधि का एक संकेतक है। उनमें से कुछ हैं:

CCITT G3 / जी -4 - के लिए मोनोक्रोम छवियों का इस्तेमाल
एक हानिपूर्ण एल्गोरिथ्म है कि छवियों के लिए प्रयोग किया जाता है - जेपीईजी
JPEG2000 - जेपीईजी करने के लिए एक और अधिक आधुनिक विकल्प है, जो भी संपीड़ित छवियों के लिए प्रयोग किया जाता है
Flate - साथ ही चित्रों के रूप में पाठ को संपीड़ित करने के लिए इस्तेमाल किया
के लिए एक विकल्प - JBIG2 मोनोक्रोम छवियों
LZW के लिए CCITT संपीड़न - पाठ के साथ-साथ चित्रों को संपीड़ित करने के लिए उपयोग किया जाता है, लेकिन फ्लेट
RLE द्वारा प्रतिस्थापित किया जा रहा है - मोनोक्रोम छवियों के
ज़िप के लिए उपयोग किया जाता है - ग्रेस्केल या रंग छवियों के लिए उपयोग किया जाता है

( यहां से कॉपी की गई )।

हालाँकि, पीडीएफ कॉम्प्लेक्स फ़ाइल संरचना को देखते हुए, पीडीएफ के कुछ भाग (या "स्ट्रीम") में से अधिकांश को पहले से ही किसी तरह से संपीड़ित किया जाएगा (और grepping / फ़िल्टर करते समय दिखाई देगा) जबकि कुछ अन्य हिस्सा नहीं होगा, इसलिए इस सवाल का कोई YES / NO उत्तर नहीं है कि क्या PDF संपीड़ित है।
इसे दूर करने का एक तरीका यह होगा कि -cविकल्प को grep में जोड़ा जाए , जो घटनाओं की संख्या लौटाता है, इसलिए आप अपेक्षाकृत देख सकते हैं कि यह कितनी अच्छी तरह से संपीड़ित है। उदाहरण के लिए, यदि कम रिटर्न देता है तो 10 यह बहुत गैर-संपीड़ित है।strings "large.pdf" | grep -c /Filter

पीडीएफ में आकार से संबंधित एक और संपत्ति यह है कि क्या वे त्वरित पहुंच के लिए अनुकूलित किए गए हैं, "अनुकूलित" पीडीएफ आकार में बड़ा होने के साथ, विकिपीडिया से उद्धृत करने के लिए :

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

आप जांच सकते हैं कि पीडीएफ का उपयोग करके अनुकूलित किया गया है या नहीं pdfinfo your.pdf


धन्यवाद! (1) qpdf का उपयोग करने के परिणाम pdftk का उपयोग करने के समान है: संपीड़ित के साथ, आकार वास्तव में थोड़ा बड़ा (अजीब) हो गया, और अनकंप्रेस के साथ, आकार बहुत बड़ा हो गया, लगभग दोगुना हो गया। (2) क्या pdftk और gpdf एक ही चीज़ को पूरा करने की कोशिश करते हैं, सेक और अनकैप्सर्ट विकल्पों का उपयोग करते हुए?
सभी

@ समय: (माफ करना, मैं यहाँ नहीं था)। (1) के लिए, जैसा कि मैंने समझाया, PDF आंशिक रूप से पहले से ही संपीड़ित है (शायद सबसे अधिक), यही कारण है कि compressing बहुत ज्यादा नहीं बचाता है, (और decompressing इसे बहुत बड़ा बनाता है, क्योंकि यह सभी संपीड़ित धाराओं को डिकम्प्रेस करता है)। (2) सबसे अधिक संभवतया qpdfऔर pdftkकम-से-कम एक ही चीज़ को कम्प्रेशन के संबंध में करते हैं, लेकिन qpdfसाथ ही साथ (कई और चीज़ों को भी) ऑप्टिमाइज़ कर सकते हैं।
फिलोमथ

10

pdftk पीडीएफ फाइलों पर कुछ ऑपरेशन करने के लिए एक उपकरण है, जैसे संपीड़न / अपघटन:

$ pdftk test.pdf output compressed_test.pdf compress

धन्यवाद! मैं सोच रहा था कि कैसे पता करें कि एक पीडीएफ फाइल पहले से ही संपीड़ित है?
सभी जूल

1
@ समय: pdfinfo file.pdfआपको बताता है कि एक पीडीएफ अनुकूलित है या नहीं । हालांकि, मुझे यकीन नहीं है कि इसका मतलब संकुचित है या नहीं।
निको

1
@uloBasEI: मैंने संपीड़न के लिए pdftk का उपयोग करते हुए आपकी कमांड की कोशिश की, लेकिन आकार लगभग नहीं बदला। अगर मैं अनप्लग करता हूं, तो फ़ाइल का आकार दोगुना है। मूल फ़ाइल, संपीड़ित फ़ाइल और असम्पीडित फ़ाइलों के गुण सभी दिखाते हैं कि वे अनुकूलित नहीं हैं।
ऑल जूल

@ निको: धन्यवाद! ऊपर मेरी टिप्पणी और मेरे अपडेट देखें। ऐसा लगता है कि संपीड़न और अनुकूलन एक-दूसरे का मतलब नहीं है?
ऑल जूल

@ समय: यह भी देखें: pandemoniumillusion.wordpress.com/2008/05/07/…
nico

1

मुझे पीडीएफ फाइल में संपीड़न विधि मिली। पाठ संपादक के साथ पीडीएफ खोलें। खोज या खोजक-पता CCITT चलाएं यदि नहीं मिला तो JPEG, फिर Flate, फिर JBIG2, फिर LZW, फिर RLE और फिर ZIP दर्ज करें।
इससे भी बदतर लगता है! डेटा स्ट्रीम की कम्प्रेशन विधि खोजना बहुत आसान है।


यह बल्कि iffy है। मैं एक असम्पीडित पीडीएफ (qpdf द्वारा असंपीड़ित) फ़ाइल का उपयोग कर जाँच करने के लिए अपने विधि का इस्तेमाल किया ग्रेप में के रूप में ग्रेप -E "(| जेपीईजी | Flate | LZW | RLE | CCITT ज़िप)" uncompressed.pdf और यह इस संदेश देता है बाइनरी फ़ाइल uncompressed.pdf मेल खाता है । ऐसा लगता है कि यह LZW और RLE दोनों पैटर्न को समाहित करने के लिए असंपीड़ित फ़ाइल का पता लगाता है।
user91822

-1

बस इसके गुणों की जांच करें; यह कहेगा कि फ़ाइल संपीड़ित है या नहीं।


मुझे लगता है कि हेदी सवाल यह है कि विशेष रूप से स्क्रिप्ट योग्य कमांड लाइन आधारित कार्यक्रमों के साथ गुणों की जांच करने के लिए कौन सा कार्यक्रम है।
कालेब

> बस इसके गुणों की जांच करें - कौन सा [खुला स्रोत] कार्यक्रम यह करने के लिए उपयोग कर सकता है, हालांकि ??
मैक्सिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.