मैं PDF के पृष्ठों को बीच में कैसे विभाजित कर सकता हूं?


38

क्या किसी को पीडीएफ के पन्नों को दो नए पृष्ठों में बीच में विभाजित करने का एक अच्छा तरीका पता है?

स्पष्ट होने के लिए, मैं पहले से ही मौजूद पृष्ठों को एक पीडीएफ से अलग करने की कोशिश नहीं कर रहा हूं ; मैं मौजूदा एकल पृष्ठ से दो नए पृष्ठ बनाने का प्रयास कर रहा हूं।


तुम ऐसा क्यों करना चाहते हो? छोटे पृष्ठ मिल रहे हैं?
अकीरा

वैसे एमएस ऑफिस एक फ्रीवेयर नहीं है, लेकिन अगर आपके पास एमएस ऑफिस 2007 है, तो आप बस दस्तावेजों को पीडीएफ फाइलों के रूप में सहेज सकते हैं और जैसा कि आप कर सकते हैं ...
Owen


जवाबों:


26

BRISS की कोशिश करो ।

वैकल्पिक शब्द

यह आपको प्रत्येक पृष्ठ को GUI के साथ क्षेत्रों को परिभाषित करते हुए जितने चाहें उतने उप-भागों में विभाजित करने देता है। यह सभी समान पृष्ठों को आपके लिए समूहों में समूहित करता है, इसलिए आप एक बार उस समूह के क्षेत्रों को परिभाषित कर सकते हैं।

यह क्रॉस-प्लेटफ़ॉर्म, मुफ़्त और खुला-स्रोत है।


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

37

आप इसे घोस्टस्क्रिप्ट की मदद से हल कर सकते हैं। pdftkअकेले ऐसा नहीं कर सकता (मेरे ज्ञान का सबसे अच्छा करने के लिए)। मैं आपको मैन्युअल रूप से ऐसा करने के लिए कमांडलाइन चरण दूंगा। यह एक प्रक्रिया के रूप में स्क्रिप्ट करना आसान होगा, पृष्ठ आकार और पृष्ठ संख्या के लिए अलग-अलग मापदंडों के साथ भी। लेकिन आपने कहा कि आप ऐसा कर सकते हैं ;-)

घोस्टस्क्रिप्ट की मदद से इसे कैसे हल करें ...

... और इसके मज़े के लिए, मैंने हाल ही में "डबल-अप" पृष्ठों वाले इनपुट फ़ाइल के साथ ऐसा नहीं किया है , लेकिन "ट्रेबल-अप्स" के साथ। आप इस मामले का उत्तर इस अन्य प्रतिक्रिया में पढ़ सकते हैं ।

आपका मामला और भी सरल है। आपको ऐसा कुछ प्रतीत होता है:

+------------+------------+   ^
|            |            |   |
|      1     |      2     |   |
|            |            | 595 pt
|            |            |   |
|            |            |   |
|            |            |   |
+------------+------------+   v
             ^
            fold
             v
+------------+------------+   ^
|            |            |   |
|      3     |      4     |   |
|            |            | 595 pt
|            |            |   |
|            |            |   |
|            |            |   |
+------------+------------+   v
<---------- 842 pt -------->

आप 4 पृष्ठों के साथ 1 पीडीएफ बनाना चाहते हैं, जिनमें से प्रत्येक का आकार 421 पीटी x 595 पीटी है।

पहला कदम

आइए पहले इनपुट पृष्ठों में से प्रत्येक से बाएं खंड निकालें:

gs \
    -o left-sections.pdf \
    -sDEVICE=pdfwrite \
    -g4210x5950 \
    -c "<</PageOffset [0 0]>> setpagedevice" \
    -f double-page-input.pdf

इन मापदंडों ने क्या किया?

सबसे पहले, पीडीएफ 1 इंच == 72 अंक में जानें । फिर बाकी है:

  • -o ...............:नाम आउटपुट फ़ाइल। तात्कालिक रूप से भी उपयोग करता है -dBATCH -dNOPAUSE -dSAFER
  • -sDEVICE=pdfwrite : हम पीडीएफ को आउटपुट स्वरूप के रूप में चाहते हैं।
  • -g................:पिक्सेल में आउटपुट मीडिया आकार सेट करता है। pdfwrite का डिफ़ॉल्ट रिज़ॉल्यूशन 720 डीपीआई है। इसलिए पेजऑफसेट के लिए मैच पाने के लिए 10 से गुणा करें।
  • -c "..............:घोस्टस्क्रिप्ट को दिए गए पोस्टस्क्रिप्ट कोड स्निपेट को मुख्य इनपुट फ़ाइल (जिसे पालन करने की आवश्यकता है -f) से ठीक पहले संसाधित करने के लिए कहता है ।
  • <</PageOffset ....:माध्यम पर पृष्ठ छवि का स्थानांतरण। (बेशक, बाएं पन्नों के लिए पारी [0 0]का कोई वास्तविक प्रभाव नहीं है।)
  • -f ...............: इस इनपुट फ़ाइल को प्रोसेस करें।

अंतिम आदेश किस परिणाम को प्राप्त हुआ?

यह वाला:

Output file: left-sections.pdf, page 1
+------------+  ^
|            |  |
|     1      |  |
|            |595 pt
|            |  |
|            |  |
|            |  |
+------------+  v

Output file: left-sections.pdf, page 2
+------------+  ^
|            |  |
|     3      |  |
|            |595 pt
|            |  |
|            |  |
|            |  |
+------------+  v
<-- 421 pt -->

दूसरा कदम

अगला, सही खंड:

gs \      
    -o right-sections.pdf \
    -sDEVICE=pdfwrite \
    -g4210x5950 \
    -c "<</PageOffset [-421 0]>> setpagedevice" \
    -f double-page-input.pdf

परिणाम:

Output file: right-sections.pdf, page 1
+------------+  ^
|            |  |
|     2      |  |
|            |595 pt
|            |  |
|            |  |
|            |  |
+------------+  v

Output file: right-sections.pdf, page 2
+------------+  ^
|            |  |
|     4      |  |
|            |595 pt
|            |  |
|            |  |
|            |  |
+------------+  v
<-- 421 pt -->

अंतिम चरण

अब हम पृष्ठों को एक फाइल में जोड़ते हैं। हम भूत-प्रेत के साथ भी ऐसा कर सकते थे, लेकिन हम pdftkइसके बजाय इसका उपयोग करेंगे , क्योंकि यह इस काम के लिए तेज़ है:

pdftk \
  A=right-sections.pdf \
  B=left-sections.pdf \
  shuffle A B \
  output single-pages-output.pdf
  verbose

किया हुआ। यहाँ वांछित परिणाम है। 4 अलग-अलग पृष्ठ, आकार 421x595 पीटी।

परिणाम:

+------------+ +------------+ +------------+ +------------+   ^
|            | |            | |            | |            |   |
|     1      | |     2      | |     3      | |     4      |   |
|            | |            | |            | |            | 595 pt
|            | |            | |            | |            |   |
|            | |            | |            | |            |   |
|            | |            | |            | |            |   |
+------------+ +------------+ +------------+ +------------+   v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->

3
सुंदर हे! आप वास्तव में हर उत्तर में इस का उपयोग करना चाहिए अगर आप मुफ्त के लिए upvotes रखना चाहते हैं!
इवो ​​फ्लिपसे

2
दूसरे चरण ने केवल मेरे लिए काम किया जब मैंने एक नकारात्मक ऑफसेट का उपयोग किया "<</PageOffset [-421 0]>> setpagedevice":। मुझे लगता है कि यह मूल फ़ाइल के उन्मुखीकरण पर निर्भर करता है। फिर भी बहुत बढ़िया जवाब। :)
मोरा

1
मेरे लिए दूसरे चरण में भी माइनस साइन के साथ काम किया
राफारेनो

9

@Marttt और यूनिक्स और लिनक्स में उनके जवाब के लिए धन्यवाद ।

आप उपयोग कर सकते हैं mutool(जो भाग के रूप में आता है mupdf):

mutool poster -x 2 input.pdf output.pdf

-yयदि आप एक ऊर्ध्वाधर विभाजन करना चाहते हैं तो आप इसका उपयोग भी कर सकते हैं ।


यह एक सरल उपाय है, धन्यवाद। दुर्भाग्य से, मार्जिन को समायोजित करने के लिए पृष्ठ पर सामग्री को शिफ्ट करने का कोई तरीका नहीं है - इसके लिए कर्ट फैफिल द्वारा वर्णित विधि का उपयोग करें।
यान लालकिंसी

0

@ कर्ट के जवाब पर विस्तार करने के लिए (क्योंकि मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा अंक नहीं हैं) पहले सुनिश्चित करें कि आपके द्वारा उपयोग किए जाने वाले आयाम फसल बॉक्स आयामों पर आधारित नहीं हैं यदि वे मीडिया बॉक्स आयामों से भिन्न हैं। आउटपुट का आकार मीडिया बॉक्स आयामों पर आधारित है, लेकिन ऑफ़सेट क्रॉप बॉक्स आयामों का उपयोग करता है।

एक गेटफ़ोल्ड पृष्ठ के लिए जिसमें 20.0833 x 13.833 मीडिया बॉक्स और 19.25 x 13.0 फ़सल बॉक्स था, जो कि मेरे दस्तावेज़ में ट्रिम बॉक्स के समान था, इसे बाईं ओर के लिए Ubuntu पर दो पृष्ठों में विभाजित करने के लिए:

gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf

दाएं ओर:

gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf

और फिर उनके साथ सिलाई की pdftk left.pdf right.pdf output final.pdf

एक विकल्प यह होगा कि फसल बॉक्स को मीडिया बॉक्स के रूप में सेट किया जाए; तब ऑफसेट -723 होगा। लेकिन तब पृष्ठों को निर्बाध रूप से प्रदर्शित करने के लिए फसल को ट्रिम करने के लिए रीसेट करना होगा। अन्यथा, फसल के लिए मीडिया सेट करें।


ध्यान दें, इन कमांड विकल्पों के साथ पृष्ठों को विभाजित करने के बाद, मीडिया बॉक्स नहीं बदलते हैं। सिर्फ फसल बदलती है। यदि आप एक पृष्ठ को कई पृष्ठों में विभाजित करते हैं, तो नए पृष्ठ पुराने बॉक्स से मीडिया बॉक्स आयाम रखते हैं। मीडिया बॉक्स आयामों को संशोधित करने के लिए sed की आवश्यकता है। हालांकि कमांड में संख्याओं को शामिल किए बिना फसल के लिए मीडिया बॉक्स सेट करना नहीं जानते।
मोटरबेल

उफ़। मेरा मतलब है कि नए पृष्ठ पुराने बॉक्स से फसल बॉक्स के आयामों को बनाए रखते हैं।
मोटरबेल

एक्रोबैट पीडीएफ के साथ एक बग मिला। विज़ुअली, क्रॉपबॉक्स आयाम एक्रोबैट में सेट पेज बॉक्स में देखे जा सकते हैं। लेकिन गेटफॉल्ड को विभाजित करने के लिए घोस्टस्क्रिप्ट का उपयोग करने के बाद क्रॉपबॉक्स आयामों ने पुराने पृष्ठ आयामों को दूसरे स्तर पर रखा। यह एक्रोबैट में प्रीफ़लाइट एनालिसिस जानकारी में देखा जा सकता है। अस्थायी रूप से बाएं पृष्ठ के दाईं ओर एक्रोबैट में फसल को समायोजित करने के बाद अस्थायी रूप से एक मनमाना संख्या में और फिर इसे 0 पर लौटा दिया जाता है, अन्य बॉक्स आयाम (ब्लीड, आर्ट और ट्रिम) को भी समायोजित किया जाता है। इसने उस समस्या को ठीक कर दिया जहां अभी भी फसल के बक्सों का डेटा पुराने पृष्ठ आयामों को दर्शाता है। सही पेज थोड़ा अलग था।
मोटरबाय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.