कुछ दिनों पहले, मैंने आपको ओकुलर में जानकारी को संपादित करने का तरीका दिखाया था, प्लाज्मा डेस्कटॉप में डिफ़ॉल्ट पीडीएफ व्यूअर। कार्रवाई करना अपेक्षाकृत सरल है, लेकिन यह संपादित जानकारी को प्रभावी ढंग से नष्ट नहीं करता है, केवल इसे दर्शक से अस्पष्ट करता है।
आज मैं आपको जो दिखाना चाहता हूं वह पहेली का दूसरा भाग है - पीडीएफ दस्तावेजों का सपाट होना। एक छवि को कई परतों के साथ सोचें, और फिर आप इसे एक गैर-स्तरित प्रारूप में सहेज लें। इसके बाद जानकारी को एक परत में चपटा कर दिया जाता है - सभी लंबवत स्टैक्ड पिक्सेल के मूल्यों की गणना की जाती है - जोड़ा/घटाया/जो कुछ भी - और फिर इस क्रिया की एक निश्चित गणना के रूप में प्रस्तुत किया जाता है। पीडीएफ के साथ भी ऐसा ही है, सिवाय इसके कि यह अधिक जटिल है, पीडीएफ संरचना दी गई है। इसे करते हैं।
ट्रेड का टूल - घोस्टस्क्रिप्ट
आपने पहले घोस्टस्क्रिप्ट (जीएस) के बारे में सुना होगा - मैंने लाटेक्स और लाइक्स से संबंधित अपने विभिन्न लेखों में निश्चित रूप से इसके बारे में वर्षों से बात की है। तो अब, हम gs इंजन का उपयोग मौजूदा "मल्टी-लेयर्ड" PDF को चपटा करने के लिए प्रोसेस करने के लिए करेंगे, जिससे जानकारी को ठीक से संपादित किया जा सके। हम इसे लिनक्स में करेंगे, क्योंकि अगर कोई एक चीज है जो लिनक्स अन्य ऑपरेटिंग सिस्टम की तुलना में बेहतर करता है - फ़ाइल प्रारूप प्रसंस्करण के साथ विशिष्ट, केंद्रित कार्य। इस प्रकार, घोस्टस्क्रिप्ट आपके वितरण में उपलब्ध होना चाहिए, और यदि यह स्थापित नहीं है, तो यह रिपॉजिटरी संग्रह में होगा।
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=flattened.pdf input.pdf
यह आज्ञा है जो जादू करती है। यह आपकी PDF फ़ाइलों में मौजूद किसी भी इमेज की कोई अतिरिक्त प्रोसेसिंग नहीं करता है - इसलिए आपको आकार में कोई बड़ी कमी की उम्मीद नहीं करनी चाहिए। आखिरकार, यह यहाँ उद्देश्य से बाहर नहीं है। लेकिन प्रभावी रूप से, बस इतना ही।
वैकल्पिक तरीके - ImageMagick और pdf2ps
यदि उपरोक्त आपको किसी भी कारण से संतुष्ट नहीं करता है, तो दो अन्य दृष्टिकोण हैं जिन्हें आप आज़मा सकते हैं। हालाँकि, कृपया ध्यान दें, मैंने पाया कि ये gs के उपयोग से कम प्रभावी हैं। इसलिए याद रखें कि जब आप नीचे सूचीबद्ध सुझावों के साथ आगे बढ़ते हैं।
आप ImageMagick Convert उपयोगिता को आजमा सकते हैं। लेकिन रुकिए।
कनवर्ट-घनत्व 300 मूल.पीडीएफ चपटा.पीडीएफ
डिफ़ॉल्ट रूप से, घोस्टस्क्रिप्ट इंजन में सुरक्षा भेद्यता के कारण, ImageMagick को PS, PDF, EPS, XPS, और अन्य सहित विभिन्न फ़ाइलों को संसाधित नहीं करने के लिए कॉन्फ़िगर किया गया है। इसलिए यदि आप ImageMagick नीतियों को संपादित किए बिना प्रयास करते हैं, तो आपको निम्न त्रुटि दिखाई देगी:
कन्वर्ट-im6.q16:सुरक्षा नीति 'पीडीएफ' @ error/constitute.c/IsCoderAuthorized/408 द्वारा अनुमति नहीं दी गई कार्रवाई करने का प्रयास।
convert-im6.q16:कोई छवि परिभाषित नहीं है `flattened.pdf' @ error/convert.c/ConvertImageCommand/3258।
इसे हल करने के लिए, आपको निम्न फ़ाइल को संपादित करने की आवश्यकता होगी - प्रासंगिक संस्करण के लिए [NUMBER] को 6 या 7 से बदलें:
/etc/ImageMagick-[NUMBER]/policy.xml
इस फ़ाइल में, सुरक्षा नीतियों की एक सूची होगी:
...
<नीति डोमेन ="कोडर" अधिकार ="कोई नहीं" पैटर्न ="ईपीएस" />
<नीति डोमेन ="कोडर" अधिकार ="कोई नहीं" पैटर्न ="पीडीएफ" />
<पॉलिसी डोमेन="कोडर" अधिकार="कोई नहीं" पैटर्न="XPS" />
पीडीएफ के लिए एक बदलें ताकि अधिकार ="कोई नहीं" अधिकार ="पढ़ें | लिखें" बन जाए। यदि आप सुरक्षा के बारे में चिंतित हैं, तो आप विशेष फ़ाइल को समतल करते हुए केवल एक अस्थायी परिवर्तन कर सकते हैं, और फिर अधिक मजबूत सेटिंग्स पर वापस लौट सकते हैं।
...
<नीति डोमेन ="कोडर" अधिकार ="कोई नहीं" पैटर्न ="ईपीएस" />
<नीति डोमेन ="कोडर" अधिकार ="पढ़ें | लिखें" पैटर्न ="पीडीएफ" />
<पॉलिसी डोमेन="कोडर" राइट्स="कोई नहीं" पैटर्न="XPS" />
अब, आप फ़ाइल को प्रोसेस कर सकते हैं। आमतौर पर, इसमें सीधे gs का उपयोग करने की तुलना में अधिक समय लगेगा। इसके अलावा, यदि आप बहुत बड़ी फ़ाइलों के साथ काम कर रहे हैं, तो आपकी स्मृति भी समाप्त हो सकती है, और रूपांतरण विफल हो जाएगा। उदाहरण के लिए:
Convert-im6.q16:कैशे संसाधन समाप्त हो गए हैं `flattened.pdf' @ error/cache.c/OpenPixelCache/4083 `flattened.pdf' @ error/pdf.c/WritePDFImage/2341।
एक बार फिर, आपको XML कॉन्फ़िगरेशन फ़ाइल को बदलने और विभिन्न नीतियों में स्मृति सीमा बढ़ाने की आवश्यकता होगी। हालाँकि, यह बहुत संभव है कि दस्तावेज़ आपके सिस्टम पर उपलब्ध स्मृति संसाधनों के लिए बहुत बड़ा हो सकता है। मेरे पास सुझाव देने के लिए जादू का सेट नहीं है:
...
<नीति डोमेन="संसाधन" नाम="स्मृति" मूल्य="2048MiB"/>
<नीति डोमेन="संसाधन" नाम="नक्शा" मूल्य="4096MiB"/>
<पॉलिसी डोमेन="संसाधन" नाम="चौड़ाई" मान="256KP"/>
<पॉलिसी डोमेन="संसाधन" नाम="ऊंचाई" मान="256KP"/>
<नीति डोमेन ="संसाधन" नाम ="क्षेत्र" मूल्य ="1024 एमबी" />
<नीति डोमेन ="संसाधन" नाम ="डिस्क" मूल्य ="4GiB" />
...पी>
दूसरा टूल pdf2ps और ps2pdf का पेयर है। मूल रूप से, आप पीडीएफ को पीएस फाइल में बदलना चाहते हैं और फिर वापस पीडीएफ में बदलना चाहते हैं, जो प्रभावी रूप से दस्तावेज़ को समतल कर देगा। जादू आदेश यह क्या करता है:
पीडीएफ2पीएस मूल.पीडीएफ - | ps2pdf - चपटा.pdf
यह ठीक और तेजी से काम करता है - लेकिन, आक्रामक संपीड़न के कारण चूक के परिणामस्वरूप कम-रेज छवियां होती हैं। यह सुनिश्चित करने के लिए टूल में विभिन्न विकल्पों को ध्यान में रखना और प्रयोग करना है, यह सुनिश्चित करने के लिए कि आप आवश्यक दस्तावेज़ निष्ठा बनाए रखते हैं।
निष्कर्ष
और वहाँ तुम जाओ। अब आप सीख गए हैं कि पीडीएफ फाइलों को कैसे समतल किया जाता है। यह सब कैसे काम करता है इसकी तकनीकी पेचीदगियां इस लेख के दायरे से बाहर हैं, लेकिन कम से कम आपके पास काम पूरा करने के लिए उपकरण हैं। मेरा अनुभव बताता है कि घोस्टस्क्रिप्ट सबसे तेज़ और सबसे प्रभावी है, जबकि रास्ते में सबसे अच्छे परिणाम मिलते हैं।
आप उल्लिखित अन्य दो उपयोगिताओं - ImageMagick और pdf2ps/ps2pdf कॉम्बो को भी आज़मा सकते हैं। हालाँकि, मैं परिणामों से कम प्रसन्न था। वैसे भी, अगर आपको अन्य लोगों के साथ पीडीएफ फाइलों को साझा करना है, और आप उसमें निहित जानकारी के स्निपेट्स को संपादित करना चाहते हैं, तो अब आपके पास इसे व्यवस्थित करने के लिए दो-ट्यूटोरियल प्रक्रिया है। यह दूसरी गाइड तस्वीर को पूरा करती है। अब अलविदा।
चीयर्स।