मैं स्वचालित रूप से पीडीएफ फाइलों के भीतर पृष्ठों की नकल कैसे करूं?


9

मेरे पास बहुत सी पीडीएफ फाइलें हैं जिनमें से प्रत्येक में 1 से 4 पृष्ठ हैं। मुझे ऐसे समाधान की आवश्यकता है जो इन फ़ाइलों में से प्रत्येक के लिए स्वचालित रूप से एक नई फ़ाइल उत्पन्न करता है। नई फ़ाइलों में मूल फ़ाइलों की सामग्री दो बार होनी चाहिए (यानी पृष्ठ 1 से अंत तक, फिर उसी क्रम में उसी पृष्ठ के बाद)।

मैं इसे कैसे पूर्ण करूं?


3
कृपया स्पष्ट करें, हम आपका मन नहीं पढ़ सकते हैं। क्या बिल? आप एक नई पीडीएफ फाइल तैयार करना चाहते हैं जिसमें मूल का हर पृष्ठ दो बार शामिल हो? किस क्रम में? क्या आप पेज 1 ए के बाद पेज 1 बी चाहते हैं या आप सभी 4 पेज पहले चाहते हैं और फिर सभी चार पेज फिर से चाहते हैं आप कौन से ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं? Pdfs बनाने के लिए आप किस टूल का उपयोग करते हैं?
terdon

जवाबों:


15

विंडोज का उपयोग करने के लिए समाधान pdftk (जो आप अपने टैग के अनुसार उपयोग कर रहे हैं):

इसका परिणाम एक पीडीएफ होगा जिसके पेज 1-एंड के बाद फिर 1-एंड होंगे:

pdftk in.pdf cat 1-end 1-end output out.pdf

यदि आप चाहते हैं कि प्रत्येक पृष्ठ को एक साथ दोहराया जाए (जैसे 1,1,2,2, ...), तो निम्न बैच फ़ाइल का उपयोग करें:

@echo off
set pages=
setlocal enabledelayedexpansion
for /f "tokens=2" %%a in ('pdftk in.pdf dump_data ^| find /i "NumberOfPages"') do for /l %%b in (1,1,%%a) do set pages=!pages! %%b %%b
pdftk in.pdf cat!pages! output out.pdf

बहुत बहुत धन्यवाद: "pdftk in.pdf कैट 1-एंड 1-एंड आउटपुट आउट.pdf" ठीक वही है जो मुझे चाहिए। केवल एक चीज गायब है वह एक लूप है जो एक निर्देशिका से सभी पीडीएफ फाइलों को लेता है और सभी नई फाइलें बनाता है। फिर से मेरी मदद करने के लिए बहुत कुछ। मैं आभारी रहूंगा और अपनी पत्नी को रात के खाने के लिए आमंत्रित करूंगा;;))
Marc

@ मर्क: लूप आसानी से हासिल किया जाता है। बस पीडीएफ के साथ डायरेक्टरी में जाएं और कमांड प्रॉम्प्ट टाइप पर for %a in (*.pdf) do @pdftk "%~a" cat 1-end 1-end output "%~na (Duplicated)%~xa"। प्रत्येक के लिए in.pdf (नाम कुछ भी हो सकता है), इसके परिणामस्वरूप परिणाम होगा (डुप्लिकेटेड) .pdf । अपने रात के खाने का आनंद लें और जवाब को स्वीकार करने के लिए मत भूलना (बाईं ओर हरे रंग की जांच चिह्न पर क्लिक करें) यदि यह आपकी मदद करता है!
Karan

अनंत धन्यवाद - आपने मेरी जान बचाई है! मैं आपकी मदद के लिए बहुत आभारी हूँ!
Marc

2

यदि आप मेरी टिप्पणी में प्रश्नों का उत्तर देते हैं, लेकिन अपनी पत्नी की खातिर, तो मैं आपको एक बेहतर समाधान दे सकता हूं, यहां कुछ सुझाव दिए गए हैं।

ImageMagick छवि हेरफेर के लिए एक क्रॉस-प्लेटफ़ॉर्म कमांड लाइन टूल है। एक बार जब आप इसे स्थापित कर लेते हैं, तो आपको इसका उपयोग करने में सक्षम होना चाहिए convert उपकरण जो आप चाहते हैं। विवरण आपके ऑपरेटिंग सिस्टम पर निर्भर करता है। मैं मान रहा हूं कि आप पूरी फ़ाइल की दो प्रतियां चाहते हैं, प्रत्येक पृष्ठ दोगुना नहीं।

  1. लिनक्स / OSX / यूनिक्स आदि

    for n in *pdf; do convert -density 150 "$n" "$n" "$n"; done
    

    यह मौजूदा फ़ाइलों को अधिलेखित कर देगा , आप पहले बैकअप लेना चाहते हैं।

  2. विंडोज। यह अच्छी तरह से थोड़ा गलत हो सकता है, मैं विंडोज का उपयोग नहीं करता हूं इसलिए मैं इसका परीक्षण नहीं कर सकता लेकिन सामान्य विचार कुछ इस तरह होना चाहिए

    for %f in (*.pdf) do (convert.exe %f %f %f)
    

तुंहारे for लूप गायब है done तथा $n शायद उद्धृत किया जाना चाहिए। शायद मुझे याद आ रहा है कि कैसे convert काम करता है, लेकिन क्या करता है convert जब आप एक ही फ़ाइल को तीन बार पास करते हैं? मैं अभी इसका परीक्षण नहीं कर सकता।
slhck

धन्यवाद @slhck, आप हमेशा की तरह दोनों गणनाओं पर सही हैं। सामान्य रूपांतरित प्रारूप है convert infile1 infile2 ... infileN outfile। इसलिए, यदि आप इसे एक ही फाइल को तीन बार पास करते हैं, तो यह इसे इनपुट के रूप में दो बार ले जाएगा और फिर आउटपुट के रूप में उसी फाइल पर लिख देगा। वह एक मैं किया था परीक्षा :)।
terdon

ओह, शांत, तो मैंने कुछ सीखा है :)
slhck

मुझे अच्छा लगता है। बहुत बहुत धन्यवाद। ऊपर की टिप्पणी: मैंने यह दिया कि पहली कोशिश और इसने पूरी तरह से काम किया, केवल सही लूप, जिसके लिए मैं अभी भी कोचिंग कर रहा हूं .... क्या आप फिर से मेरी मदद कर सकते हैं? अग्रिम में बहुत धन्यवाद!
Marc

@ माफ करना, मुझे यकीन नहीं है कि तुम क्या मतलब है। कौन सी टिप्पणी? कौन सा पाश? खिड़कियां या बैश एक?
terdon

2

यदि आप चाहते हैं कि प्रत्येक पृष्ठ लिनक्स पर (जैसे कि 1,1,2,2, ...) में एक साथ डुप्लिकेट हो, तो यह स्क्रिप्ट ऐसा करेगी:

#!/bin/bash
INPUTFILE=$*
PAGENUM=`pdftk ${INPUTFILE} dump_data | grep NumberOfPages | cut -d : -f 2  | cut -d " " -f 2`
PAGES=`seq 1 ${PAGENUM}`
DUPAGES=`for i in ${PAGES} ; do echo $i $i | tr "\n" " " ; done`
OUTPUT=`basename ${INPUTFILE} .pdf`.dup.pdf
pdftk ${INPUTFILE} cat ${DUPAGES} output ${OUTPUT}

0

यदि आपके पास pdftk स्थापित नहीं है, लेकिन poppler-utils, तो इस कमांड का उपयोग करें:

for f in *
do
    pdfjoin $f $f
done

यह विशेष रूप से फेडोरा 21 पर प्रासंगिक है, जहां पीडीएफ किसी भी अधिक भंडार में उपलब्ध नहीं है।


0

सरल उपयोग pdfunite। यह संभवतः अधिक स्क्रिप्टिंग ज्ञान के साथ और अधिक सरलीकृत किया जा सकता है।

ध्यान रहे कि अंतिम तर्क परिणामी फ़ाइल है । यदि आप यह भूल जाते हैं तो यह फाइल अधिलेखित हो जाएगी।

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