पीडीएफ के एक गुच्छा के अंतिम पृष्ठ को कैसे निकालना और / या निकालना है?


14

हमारे विक्रेताओं में से एक ने अनावश्यक रूप से विशाल छवि से पीडीएफ के अंतिम पृष्ठ पर काम करना शुरू कर दिया जो हमें उनसे मिलता है। मुझे इसे ट्रिम करने की जरूरत है। हालांकि, हमारे पास इनमें से सैकड़ों हैं, इसलिए मैन्युअल रूप से जाना निषिद्ध है। निकालने का सबसे अच्छा तरीका क्या है और फिर हटा दें (अधिमानतः पहले एक, फिर दूसरा; मुझे अभी भी फ़ाइलों के माध्यम से पुष्टि करने की आवश्यकता है कि मैं एक नहीं हटा रहा हूं जिसमें छवि नहीं है) स्वचालित रूप से पीडीएफ का अंतिम पृष्ठ? OS लिनक्स है।

मैं इसे भूत-प्रेत का उपयोग करके निकाल सकता हूं, कुछ की तर्ज पर gs -dFirstPage=5 -dLastPage=5, लेकिन मुझे इसे स्वचालित करने की आवश्यकता है, मैं इसके माध्यम से नहीं जा सकता हूं और मैन्युअल रूप से पता लगा सकता हूं कि अंतिम पृष्ठ की संख्या क्या है।

कोई विचार?

संपादित करें: स्पष्ट करने के लिए, मैं अंतिम पृष्ठ को अलग करना / हटाना चाहता हूं। इसमें छवि नहीं है, अंतिम पृष्ठ अवधि को एक्साइज करें।


1
देखो pdftk- मैं सकारात्मक हूं इस तरह के कार्य के लिए सामान्य रूप से काम किया जा सकता है।
डैनियल एंडर्सन


2
उस का एक डुप्लीकेट दूर से नहीं।
एंड्रयू

मुझे लगता है कि मुझे स्पष्ट करना चाहिए हालांकि: मैं अंतिम पृष्ठ पर एक छवि को हटाने में दिलचस्पी नहीं रखता हूं। मुझे अंतिम पृष्ठ, अवधि निकालने में रुचि है।
एंड्रयू

1
संबंधित प्रश्न के कई अलग-अलग जवाब उबंटू से पूछें: askubuntu.com/questions/221962/…
TuringTux

जवाबों:


2

जैसा कि @ डैनियल एंडरसन ने पहले ही टिप्पणी की थी, यह आसानी से किया जा सकता है pdftk:

pdftk input.pdf cat end-1 output temp.pdf
pdftk temp.pdf  cat end-2 output output.pdf
rm temp.pdf

मैं नहीं जानता कि क्या यह एक कॉल के साथ pdftk किया जा सकता है ...

संपादित करें : आप इसे थानोस के उत्तर और उपयोग के साथ जोड़ सकते हैं (बैश में):

pdftk input.pdf cat 1-$((last-1)) output output.pdf

जब आप पहले से ही चर को अंतिम पृष्ठ निकालते हैं $last


उदाहरण काम नहीं करता है। बेहतर काम करने के लिए @Sid Steward का जवाब मिला।
Reado

14

@ एल्डरिंग के उत्तर पर और सुधार करने के लिए, pdftk संस्करण १.४५ और बाद में पृष्ठ संख्या में निचले-केस अक्षर r को जोड़कर उल्टे क्रम में पृष्ठों को संदर्भित करने का साधन है। PDF में अंतिम पृष्ठ r1 है, अगला-से-अंतिम पृष्ठ r2 है, आदि।

उदाहरण के लिए, एकल pdftk कॉल:

pdftk input.pdf cat 1-r2 output output.pdf

अंतिम पृष्ठ को input.pdf से हटा देगा - इनपुट कम से कम दो पृष्ठ लंबा होना चाहिए।

अपनी फ़ाइलों का परीक्षण करने के लिए पीडीएफ के अंतिम पृष्ठ को निकालने के लिए, चलाएं:

pdftk input.pdf cat r1 output final_page.pdf

Pdftk लिनक्स पर उपलब्ध है। कई डिस्ट्रोस में एक बाइनरी है जिसे आप स्थापित कर सकते हैं। आपको यह सुनिश्चित करना चाहिए कि यह संस्करण १.४५ या बाद का है, हालाँकि। यदि नहीं, तो आप स्रोत कोड से pdftk बना सकते हैं।


rN-thing बिल्कुल वही है जिसकी मुझे ज़रूरत थी, क्योंकि मेरे लेटेक्स आधारित पीडीएफ जनरेटिंग सिस्टम ने हमेशा शुरुआत में कुछ खाली पेज तैयार किए और लगभग दस्तावेज़ के अंत में, मुझे उन्हें मैन्युअल रूप से अंत में निकालना पड़ा। अब मैं सिर्फ कॉल करता हूं: pdftk A = pocket20.pdf कैट A3-r6 r3-end output pocket_to_print.pdf जो पहले दो और चौथे, 5 वें अंतिम पेज को हटाता है।
मार्टिन टी।

1

pdfinfo आपको वास्तविक pdf फ़ाइल का आकार देगा, और pdfimages आपको उक्त पीडीएफ फाइल में छवियों का एक सूचकांक देगा। तो आप फॉर्म में एक स्क्रिप्ट लिख सकते हैं

#!/bin/bash
for i in *.pdf
do
        j=$(pdfinfo "$i" |awk '/^Pages/ { print $2}')
        pdfimages -list -p -f "$j" "$i"
done

यदि किसी विशेष फ़ाइल में अंतिम पृष्ठ में छवि है, तो वापस आ जाना चाहिए। यदि ऐसा होता है, तो आपको जो भी हेरफेर करने की ज़रूरत है वह कर सकते हैं।


0

यहाँ pdftk के बजाय pdfjam का उपयोग कर एक समाधान है:

#!/bin/sh
fname=`basename $1`
pdfjam $1 1-$((`pdfinfo $1 | grep Pages | grep -shoPe '\d+'` - ${2:-1})) -o ${fname%.*}-trimmed.pdf

जहां पहला तर्क ट्रिम करने के लिए फ़ाइल है और दूसरा तर्क ट्रिम करने के लिए पृष्ठों की मात्रा को कम करता है (चूक 1)।


0

एक लाइनर समाधान के findसाथ प्रयोग किया जाएगा pdftk:

find . -name "*.pdf" -exec pdftk {} cat 1-r2 output cut/{} \;

नोट : फसली फाइलें इस उदाहरण में एक उपनिर्देशिका में संग्रहीत की जाती हैं, जिसे cutमूल फ़ाइल नाम रखने के लिए कहा जाता है क्योंकि pdftkइनपुट फ़ाइलों को अधिलेखित करने की अनुमति नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.