मैं कमांड लाइन का उपयोग करके कई पीडीएफ कैसे जोड़ सकता हूं?


52

वहाँ एक त्वरित एक लाइनर एक में कई pdfs गठबंधन करने के लिए है?

मुझे पता है कि यह Preview.app का उपयोग करके किया जा सकता है

जवाबों:


75

कमांड लाइन से ओएस एक्स में पीडीएफ फाइलों को जोड़ने में "ओएसएक्स में कमांड लाइन पर पीडीएफ फाइलों को मिलाकर" पर एक नज़र डालें ।

यह पता चला है कि टाइगर आगे से, OSX पायथन स्क्रिप्ट के साथ जहाज करता है, जो वास्तव में आपकी आवश्यकता है। स्क्रिप्ट पहले से ही निष्पादन योग्य है, और पायथन ओएस एक्स पर पहले से स्थापित है, इसलिए आपको इसे चलाने के लिए बस टर्मिनल खोलने और टाइप करने की आवश्यकता है

"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf

इसके अलावा लिंक किए गए पृष्ठ पर इसके लिए एक प्रतीकात्मक कड़ी बनाने का सुझाव join.pyटाइपिंग आसान लेकिन वे लोप बनाने के लिए फ़ाइल -sमें ln -s ... ..., और इसके बिना, एक हार्ड लिंक बनाया जाता है। शायद कोई फर्क नहीं पड़ता, हालाँकि मैं इसका उल्लेख करूँगा।


मेरे लिए काम किया। यहां एक बड़ी बात यह है कि अतिरिक्त पैकेजों को स्थापित करने से बचना चाहिए जिन्हें आप फिर कभी उपयोग नहीं कर सकते हैं। धन्यवाद।
ग्वारछा

मेरे लिए El Capitan 10.11.6 पर काम किया।
पाबुइसन

2
चेतावनी : मेरे पास पीडीएफ थे जहां इसने कई पन्नों के रोटेशन को गड़बड़ कर दिया
adius

28

बस कमांड के साथ ब्रू का उपयोग करके घोस्टस्क्रिप्ट स्थापित करें:

brew install gs

फिर सूचीबद्ध सभी फाइलों के साथ कमांड चलाएं:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf

OS X / macOS में पहले से ही मूल रूप से कमांड लाइन से पीडीएफ फाइलों को संयोजित करने का एक तरीका है, इसलिए पहले Xcode, Homebrew और फिर घोस्टस्क्रिप्ट के लिए कमांड लाइन टूल स्थापित करने के लिए समय बर्बाद करने का समय बर्बाद करें, ऐसा कुछ करने के लिए जो पहले से ही मूल रूप से किया जा सकता है। किसी भी उपरोक्त पैकेज को स्थापित करने के लिए?
user3439894

5
@ user3439894 कई लोगों के पास पहले से ही ये सामान्य पैकेज स्थापित हैं और gsभविष्य में संदर्भ के लिए पहले से ही इसका उपयोग कर रहे हैं यह समाधान सिर्फ उतना ही सुविधाजनक होगा।
htor

1
@ user3439894 मैं भ्रम देखता हूं। मैं आपको संबोधित कर रहा हूं क्योंकि आप इस उत्तर के मूल्य पर सवाल उठा रहे थे। कमांड लाइन उपयोगिताओं को स्थापित करने के लिए होमब्रे का उपयोग करना इन दिनों बहुत आम है, इसलिए मैं इसे समय की बर्बादी नहीं कहूंगा। कई लोगों के लिए यह उत्तर आपके समान ही एक अच्छा समाधान प्रदान करता है।
htor

7
यह मेरे लिए काम करता है, py कमांड नहीं
थिएमे हनिस

2
Thieme Hennis की टिप्पणी के अनुसार, ज्वाइनहोम स्क्रिप्ट एक विभाजन त्रुटि के साथ हाई सिएरा में मेरे लिए क्रैश हो जाती है। लेकिन जीएस पूरी तरह से काम करता है।
18'18

2

ऑटोमेकर एक्शन में ऐप्पल की पाइथन लिपि बहुत धीमी है, क्योंकि इसमें नए PDFKit फ्रेमवर्क के बजाय CoreGraphics के CGPDFDocument API का उपयोग किया गया है। यह केवल आवश्यक API के बजाय संपूर्ण CoreGraphics लाइब्रेरी का आयात करता है।

एक वैकल्पिक, तेज अजगर स्क्रिप्ट, यहां पाया जा सकता है:

यह स्क्रिप्ट पीडीएफ में सामग्री की एक तालिका भी जोड़ती है, प्रत्येक घटक फ़ाइल को सूचीबद्ध करती है (और मौजूदा ToCs को मर्ज करती है), जो कि Apple नहीं करता है।

इसका उपयोग कमांड लाइन पर (पीडीएफ फाइलनामों के साथ तर्कों के रूप में), या एक ऑटोमेटर शेल स्क्रिप्ट एक्शन में, फाइंडर के लिए क्विक एक्शन / सर्विस बनाने के लिए किया जा सकता है।


1
एक परीक्षण के रूप में, अपनी स्क्रिप्ट के साथ time कमांड का उपयोग करके , अंतर्निहित स्क्रिप्ट और दो फाइलें ~ 200 एमबी प्रत्येक, आपकी स्क्रिप्ट बिल्ट-इन स्क्रिप्ट की तुलना में 9 सेकंड तेज थी , निश्चित रूप से टीओसी बरकरार होने का अतिरिक्त लाभ। । अच्छा! +1joinpdfs.py join.py joinpdfs.py join.py
user3439894

BTW 9 सेकंड बहुत अधिक नहीं लग सकता है, लेकिन यह बिल्ट-इन स्क्रिप्ट का कुल समय 1/3 था , इसलिए 1/3 का समय अधिक महत्वपूर्ण है।
user3439894

1

एफडब्ल्यूआईडब्ल्यू, मैंने एक त्वरित छोटा कार्यक्रम लिखा है जो आपको सिस्टम के अजगर और इस तरह के बाहरी निर्भरता पर भरोसा किए बिना ऐसा करने देता है। यहाँ github पर : pdfmerge और उपयोग करने के लिए बहुत सरल है, या तो इसके साथ विलय करने के लिए पीडीएफ फाइलों की एक सूची पारित कर सकते हैं, इसे फ़ाइलों की pdfmerge in1.pdf in2.pdf ... out.pdfएक सूची को किसी पाठ फ़ाइल में विलय करने के लिए पास कर सकते हैं जैसे कि pdfmerge infileslist.txt out.pdfया बस वर्तमान निर्देशिका को ABC क्रम में करते हैं pdfmerge out.pdf। मैंने इसे एक सीखने की परियोजना के रूप में लिखा है, इसलिए स्वतंत्र और खुला है और आप गितुब पर रिलीज़ टैब से नवीनतम बाइनरी प्राप्त कर सकते हैं।


चूंकि पायथन डिफ़ॉल्ट रूप से और मैकओएस के एक हिस्से के रूप में स्थापित है, इसलिए मैं जरूरी नहीं कि इसे प्रति बाहरी निर्भरता मानता हूं। दूसरे शब्दों में, पीडीएफ फाइलों में शामिल होने के लिए macOS में बॉक्स से पहले से उपलब्ध क्या है, इसका उपयोग करने के लिए join.py, Automator में Combine PDF Pages कार्रवाई से स्क्रिप्ट, कुछ और डाउनलोड या इंस्टॉल करने की आवश्यकता नहीं है, फिर भी आपका उपयोग करने के लिए मुझे करना होगा। इसे डाउनलोड और इंस्टॉल करें। लिंक पर एक बाइनरी भी नहीं देखी।
user3439894

1
BTW मैंने आपके कोड का उपयोग किया और यह दिलचस्प है कि आप दो मुख्य घटकों (फाउंडेशन और क्वार्ट्ज) का उपयोग कर रहे हैं जो कि पायथन स्क्रिप्ट पहले से ही उपयोग कर रहे हैं। क्या आपके कोड में ऐसा कुछ है जो आंतरिक रूप से बेहतर है कि इसका उपयोग उस पर किया जाए जो पहले से ही डिफ़ॉल्ट रूप से कुछ भी डाउनलोड किए बिना प्रदान किया जाता है, जबकि आपके साथ इसे उपयोग करने के लिए अतिरिक्त और अतिरिक्त कदम उठाने होंगे?
user3439894

1
उन लोगों के लिए जो किसी और चीज़ के लिए पायथन का उपयोग नहीं करते हैं, संभवतः यह Apple-प्रदान की गई स्क्रिप्ट का उपयोग करने के लिए अधिक समझ में आता है। लेकिन जो लोग पायथन का उपयोग करते हैं, उनके लिए कई मॉड्यूल (सिस्टम पायथन 2.7 है, आधुनिक पायथन 3.x है) को विभिन्न मॉड्यूल इंस्टॉलेशन और सामान के साथ प्रबंधित करने के लिए एक बड़ी परेशानी हो सकती है। मेरी मशीन पर, उदाहरण के लिए, मेरे $ PATH बिल्कुल अलग पायथन की ओर इशारा करते हैं। यह शगुन और इस तरह के विवेकपूर्ण उपयोग से हल किया जा सकता है, लेकिन मुझे यह कष्टप्रद लगता है। YMMV, बिल्कुल। इसके अलावा, बाइनरी डाउनलोड पेज का सीधा लिंक: github.com/paultopia/pdfmerge/releases/latest
पॉल गाउडर

1

@Bartosz पेट्रीस्की के अच्छे जवाब पर निर्माण , हम घोस्टस्क्रिप्ट के cpdfशीर्ष पर अपनी न्यूनतम उपयोगिता बना सकते हैं :

brew install gs
cpdf () { 
  gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}

फिर इसका उपयोग करें जैसे:

cpdf merged.pdf file1.pdf file2.pdf file3.pdf

0

मैंने मुक्त सुसंगत पीडीएफ कमांड लाइन टूल को सबसे अच्छा विकल्प पाया। यह बहुत तेज़ है, दोषरहित है, और कुछ अन्य समाधानों के रूप में अभिविन्यास या हाइपरलिंक को गड़बड़ नहीं करता है। प्रारूप है:

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