PDF 파일 내에서 페이지를 자동으로 복제하려면 어떻게합니까?


10

각각 1 ~ 4 페이지의 PDF 파일이 많이 있습니다. 이 파일 각각에 대해 새 파일을 자동으로 생성하는 솔루션이 필요합니다. 새 파일에는 원본 파일의 내용이 두 번 포함되어야합니다 (예 : 1에서 끝까지 페이지, 같은 순서로 같은 페이지가 다시옵니다).

어떻게하면 되나요?


3
우리는 당신의 마음을 읽을 수 없습니다. 어떤 청구서? 원본의 모든 페이지를 두 번 포함하는 새 pdf 파일을 생성 하시겠습니까? 어떤 순서로? 1a 페이지 다음에 1b 페이지를 원하십니까? 또는 4 페이지를 모두 먼저 읽은 다음 4 페이지를 다시 원하십니까? 어떤 운영 체제를 사용하고 있습니까? PDF를 작성하기 위해 어떤 도구를 사용합니까?
terdon

답변:


15

PDFtk를 사용하는 Windows 용 솔루션 (태그별로 사용중인 것 같습니다) :

그러면 1-end 페이지와 1-end 페이지가있는 PDF가 생성됩니다.

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 cat 1-end 1-end output out.pdf"는 정확히 내가 원하는 것을 수행합니다. 누락 된 유일한 것은 디렉토리에서 모든 pdf 파일을 가져 와서 모든 새 파일을 만드는 루프입니다. 감사하게 생각하고 시간을 절약 한 저녁 식사를 위해 아내를 초대합니다 ;-)))
Marc

@Marc : 루프가 쉽게 달성됩니다. PDF가있는 디렉토리로 이동하고 명령 프롬프트에서을 입력하십시오 for %a in (*.pdf) do @pdftk "%~a" cat 1-end 1-end output "%~na (Duplicated)%~xa". 각 in.pdf (이름은 무엇이든 가능)에 대해 (Duplicated) .pdf에 해당 합니다. 저녁 식사를 즐기고 도움이 되었으면 답변을 수락하는 것을 잊지 마십시오 (왼쪽의 녹색 확인 표시 클릭).
Karan

당신에게 무한 감사-당신은 내 생명을 구했습니다! 도와 주셔서 감사합니다!
Marc

2

내 의견에 질문에 대답하면 더 나은 해결책을 줄 수 있지만 아내를 위해 몇 가지 제안이 있습니다.

ImageMagick 은 이미지 조작을위한 크로스 플랫폼 명령 행 도구입니다. 설치 한 후에는 convert도구를 사용하여 원하는 작업을 수행 할 수 있어야합니다 . 세부 사항은 운영 체제에 따라 다릅니다. 각 페이지가 두 배가 아닌 전체 파일의 두 복사본을 원한다고 가정합니다.

  1. 리눅스 / OSX / 유닉스 등

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

    기존 파일을 덮어 쓰므로 먼저 백업 할 수 있습니다.

  2. Windows. 이것은 약간 잘못되었을 수 있습니다 .Windows를 사용하지 않으므로 테스트 할 수 없지만 일반적인 아이디어는 다음과 같습니다.

    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

@Marc 죄송합니다, 무슨 말인지 잘 모르겠습니다. 어떤 의견? 어느 루프? 창문이나 배쉬?
terdon

2

Linux에서 각 페이지를 함께 복제하려면 (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

이는 특히 pdftk를 더 이상 리포지토리에서 사용할 수없는 Fedora 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

0

pdftk가 이미 설치된 Linux에서 4 페이지 pdf (1,1,2,2,3,3,4,4)의 페이지를 복제하는 경우이 항목이 효과적이었습니다.

pdftk output.pdf cat 1 1 2 2 3 3 4 4 output out.pdf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.