वहाँ कमांड लाइन से एक .pdf छवि समतल करने के लिए एक रास्ता है?


19

GIMP में, मैं एक .pdf आयात कर सकता हूं, और "इमेज" ड्रॉपडाउन मेनू में "Flatten Image" का चयन करके GUI का उपयोग करके इसे समतल कर सकता हूं (यदि इसे कई परतों के साथ बनाया गया है)। मैं एक नए फ़ाइल नाम के साथ .pdf निर्यात कर सकता हूं।

मैं इसे स्वचालित करना चाहूंगा। क्या टर्मिनल के माध्यम से ऐसा करने का कोई तरीका है?


1
Imagemagick इंस्टॉल करें और मैन मोगरीफाई-इम 6, मोंटाज-इम 6, डिस्प्ले-इम 6, स्ट्रीम-इम 6, आइडेंट-इम 6, इम्पोर्ट-इम 6, कंज्यूमर-इम 6, कंपोजिट-इम 6, कन्वर्ट-इम 6, चेतन-इम 6 और तुलना-इम 6 पढ़ें।
फारसगुल्फ

जवाबों:


25

मुझे Google के माध्यम से ये 2 विधि मिली, इस थ्रेड में शीर्षक: Re: चपटा पीडीएफ फाइलें UNIX कमांड लाइन पर

विधि # 1 - Imagemagick के कन्वर्ट का उपयोग करते हुए:
$ convert orig.pdf flattened.pdf 

नोट: गुणवत्ता इस दृष्टिकोण के साथ ऐसा होने की सूचना है।

विधि # 2 - pdf2ps का उपयोग करना -> ps2pdf:
$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf 

नोट: यह विधि छवि गुणवत्ता बनाए रखने के लिए बताई गई है।


1
दूसरे पर GIMP से बेहतर गुणवत्ता - धन्यवाद!
जेनेरिक_युसर

@ACD - यह जानना अच्छा है। खुशी है कि यह आपके Q.
slm

2
विधि 1 ने बहुत ही अस्पष्ट छवि उत्पन्न की, जबकि विधि 2 ने पूरी तरह से काम किया।
सीज़्न कोज़ाक

1
दुर्भाग्य से, मेथड # 2 छवि को खराब नहीं करता है, इसलिए यदि आप संवेदनशील भागों को ब्लॉक करने की कोशिश कर रहे हैं, तो एक उपयोगकर्ता अभी भी दस्तावेज़ को खोल सकता है और परतें निकाल सकता है (Inkscape जैसी चीज़ के साथ)। हालाँकि, आप विधि # 1 के रिज़ॉल्यूशन को संशोधित कर सकते हैं: $ convert -density 150 {original,flattened}.pdf यदि आपको डिस्क स्थान को संरक्षित करने की आवश्यकता है, तो आप उस तरह की चीज़ों का उपयोग -type Grayscaleया -monochromeया कर सकते हैं ।
21

1
दोनों विधियाँ पीडीऍफ़ को नया रूप देगी, हालाँकि विधि # 2 इसे बहुत अधिक रिज़ॉल्यूशन पर करता है। इसलिए इनमें से कोई भी तरीका संतोषजनक नहीं है।
Ant

18

घोस्टस्क्रिप्ट (gs) ने मुझसे pdf2psऔर convertमेरे लिए बेहतर काम किया । गुणवत्ता शायद ही नीची थी और फ़ाइल का आकार छोटा है।

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged  \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf

यहां पाया गया: http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/


यह विधि महान काम करती है, पीडीएफ को व्यवस्थित नहीं किया जाता है और पाठ को पाठ के रूप में संरक्षित किया जाता है
Ant

2
मैंने चपटेपन के माध्यम से एक पारदर्शिता परत को हटाने के लिए इसका उपयोग करने की कोशिश की, लेकिन यह मेरे लिए काम नहीं किया।
mikemtnbikes

इसने मेरे लिए एक फ़ॉन्ट बदल दिया लेकिन अन्य प्रस्तावित विधियों की तुलना में बहुत बेहतर संकल्प।
स्टेप

1

हालाँकि, कन्वर्ट वही फ़ाइल आकार रखेगा जो मैंने पाया है कि यह धीमा है।

Pdf2ps ps2pdf विधि तेज है, लेकिन मैंने देखा कि यह फ़ाइल का आकार बढ़ा रहा था।

pdftk अच्छा है क्योंकि यह न केवल तेज़ है, बल्कि एक समान फ़ाइल आकार भी रखता है।

यह वह है जो मैं एक निर्देशिका को समतल करने के लिए उपयोग करता हूं।

    function pdfflatten () {
        pdftk "$1" output "$2" flatten
    }
    export pdfflatten
    alias pdfflattenDIR='mkdir flattenedPDFs; for i in `seq $(ls *.pdf | wc -l)`; do a=`ls *.pdf | head -$i | tail -1`; pdfflatten "$a" flattenedPDFs/"$a"; done'

pdftk समतल एक पीडीएफ के भीतर छवियों को नहीं बदलता है। डॉक्स से यह "पीडीएफ के पन्नों के साथ एक इनपुट पीडीएफ के इंटरेक्टिव फॉर्म फ़ील्ड (और उनके डेटा) को मर्ज करता है"
एडन केन

1
स्पष्ट होने के लिए, यह दृष्टिकोण पारदर्शी परतों (जैसा कि ऊपर बताया गया है) को समतल नहीं करता है।
mikemtnbikes
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.