페이지 당 PDF 2면을 페이지 당 1면으로 변환


12

페이지 당 양면이있는 PDF를 페이지 당 1면으로 변환하려면 어떻게해야합니까?


이것은 절대적으로 미쳤다! PDF에서 페이지 설정을 양면 대신 단면으로 변경할 수있는 방법이 없습니까?
Nathan Fellman

@Nathan Fellman : 미쳤습니다. 그러나 미친 일이 가끔 당신에게 ;-) 재미의 대부분을 제공
커트 Pfeifle


@SkippyleGrandGourou 그 질문이 어떻게 관련되어 있는지 모르겠습니다. 페이지에서 두 가지 다른 일을하려는 질문이 아닌가?
벤 N

@BenN : 두 질문 모두 "기존의 단일 페이지에서 두 개의 새 페이지를 작성하여"다른 하나를 인용하는 방법을 묻습니다. 가장 많이 투표 된 답변은 거의 카피 파스타입니다.
Skippy le Grand Gourou

답변:


24

문제는 Acrobat (Reader가 아닌 정식 버전)의 도움으로 이미 해결되었습니다. 그러나 Acrobat에 액세스 할 수 없으면 어떻게해야합니까? Ghostscript와 pdftk로도 가능합니까?

Ghostscript의 도움으로 이것을 해결하는 방법 ...

... 재미있게하기 위해 "더블 업"페이지가 아닌 입력 파일을 사용하고 "트레블 업"이있는 입력 파일을 사용하겠습니다. 실제로, 나는 오늘 그러한 PDF를 이메일로 받았습니다. 그것은 Leporello의 Scheme에 접힌 전단지였습니다 . 시트 크기는 A4 가로 (842pt x 595pt)이며 다음과 같이 접 히고 배치되었습니다.

Front side to be printed, page 1 of PDF
+--------+--------+--------+   ^
|        |        |        |   |
|   5    |   6    |   1    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
         ^        ^
        fold     fold
         v        v
+--------+--------+--------+   ^
|        |        |        |   |
|   2    |   3    |   4    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
Back side to be printed, page 2 of PDF
<---------- 842 pt -------->

6 페이지로 1 개의 PDF를 만들고 싶습니다. 각 페이지의 크기는 280.67pt x 595 pt입니다.

첫 번째 단계

먼저 각 입력 페이지에서 왼쪽 섹션을 추출해 보겠습니다.

gswin32c.exe ^
    -o left-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f myflyer.pdf

이 매개 변수는 무엇을 했습니까?

  • -o ...............:출력 파일 이름을 지정합니다. 묵시적으로도 사용합니다 -dBATCH -dNOPAUSE -dSAFER.
  • -sDEVICE=pdfwrite : 우리는 PDF를 출력 형식으로 원합니다.
  • -g................:출력 미디어 크기를 픽셀 단위로 설정합니다. pdfwrite의 기본 해상도는 720dpi입니다. 따라서 PageOffset과 일치하도록 10을 곱하십시오.
  • -c "..............:기본 입력 파일 바로 앞에있는 PostScript 코드 스 니펫을 처리하도록 Ghostscript에 요청합니다 (다음에 와야 함 -f).
  • <</PageOffset ....:매체에서 페이지 이미지의 이동을 설정합니다. (물론, 왼쪽 페이지의 시프트 [0 0]는 실제 효과가 없습니다.)
  • -f ...............: 이 입력 파일을 처리하십시오.

마지막 명령으로 얻은 결과는 무엇입니까?

이 하나:

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

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

두번째 단계

이제 가운데 부분에 대해 비슷한 작업을 수행하십시오.

gswin32c.exe ^
    -o center-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [280.67 0]>> setpagedevice" ^
    -f myflyer.pdf

결과:

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

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

세 번째 단계

마지막으로 올바른 섹션 :

gswin32c.exe ^
    -o right-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [561.34 0]>> setpagedevice" ^
    -f myflyer.pdf

결과:

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

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

마지막 단계

이제 페이지를 하나의 파일로 결합합니다.

pdftk.exe ^
  A=right-sections.pdf ^
  B=center-sections.pdf ^
  C=left-sections.pdf ^
  cat A1 B2 C2 A2 B1 C1 ^
  output single-files-input.pdf
  verbose

끝난. 원하는 결과는 다음과 같습니다. 크기가 280.67x595 인 6 개의 서로 다른 페이지

결과:

+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   ^
|        |  |        |  |        |  |        |  |        |  |        |   |
|   1    |  |   2    |  |   3    |  |   4    |  |   5    |  |   6    |   |
|        |  |        |  |        |  |        |  |        |  |        | 595 pt
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   v
< 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt > 

1
이런 쓰레기, 멋진 예술이야!
Ivo Flipse

이것은 나를 위해 잘 작동했지만 다른 섹션을 얻으려면 PageOffset을 음수로 설정해야했습니다.
jonchang

더 큰 PDF에는 Python을 사용할 수 있습니다. f = open("order.dat","w") for i in [a+1 for a in xrange(63)]: f.write("A{0} B{0} ".format(i)) f.close()이렇게하면 "A1 B1 A2 B2 ... A63 B63"으로 order.dat 파일이 생성됩니다 . 그런 다음에 복사하여 붙여 넣을 수 있습니다 pdftk.
Suuuehgi 2016 년

4

방금 같은 문제가있었습니다. pdf 페이지를 분리하고 자르기위한 오픈 소스 Java GUI 도구 인 briss를 발견했습니다.

http://sourceforge.net/projects/briss/

사용자 인터페이스가 완전히 사소한 것은 아니지만 Linux에서는 매우 잘 작동했습니다. 다른 크기의 페이지가있는 pdf로도 작동했습니다!


3

@peims, 감사합니다. 방법의 단계별 버전은 다음과 같습니다. Kindle DX로 변환하고 싶은 파일로 시도했는데 완벽하게 작동합니다.

  • Acrobat v9 정식 버전을 사용하여 페이지 왼쪽을 자르고 "left.pdf"로 저장하십시오.
    • 자르기 도구를 사용하여 페이지의 왼쪽을 표시하십시오.
    • 마우스 오른쪽 버튼을 클릭하고 "크롭 박스 설정"을 선택하십시오.
    • "문서 .. 자르기 페이지"를 선택하고 자르기를 전체 문서에 적용하십시오.
  • 오른쪽 페이지에서 "right.pdf"로 저장하십시오.
  • 이 단계에서는 왼쪽 페이지가있는 "left.pdf"와 오른쪽 페이지가있는 "right.pdf"의 두 가지 문서가 있습니다.

그런 다음 pdftk.exe ( http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ )를 사용하여 결과를 단일 파일로 인터리브하십시오. "pdftk.exe", "left.pdf"및 "right.pdf"를 "D : \"로 복사하고 다음을 실행하십시오.

  • D :> pdftk D : \ left.pdf 버스트 출력 % 05d_A.pdf
  • D :> pdftk D : \ right.pdf 버스트 출력 % 05d_B.pdf
  • D :> pdftk * _ ?. pdf 고양이 출력 결합 .pdf

참고 : 파일을 "C : \"로 복사하면 보안 권한으로 인해 Win 7에서 작동하지 않습니다. D : \가 없으면 "C : \ x"디렉토리를 작성하여 작업을 완료하십시오.

이 결과는 일반적으로 충분합니다. 그러나 출력을 향상시키기위한 두 가지 선택적 단계가 더 있습니다.

  • (선택적인 마지막 단계 1)이 단계에서 문서는 크기가 크므로 (내 문서는 7MB에서 80MB로 풍선) 다음 중 하나를 사용하여 파일 크기를 줄일 수 있습니다.
    • "Advanced..PDF Optimizer"또는
    • "Acrobat 5와 호환"설정의 "Advanced..Preflight"
  • (선택 사항 2 단계) 페이지 크기가 모두 다릅니다. 모든 페이지에서 자르기를 반복하면 모든 크기가 균일합니다.

2

문서를 복제 한 다음 짝수 페이지 번호 만 하나의 파일에 표시되고 홀수 페이지 번호 만 다른 파일에 표시되도록 페이지를자를 수 있습니다. 그런 다음 파일을 단일 페이지로 분할하고 다시 결합하여 한면이있는 문서를 한 페이지로 만듭니다.

여러 가지 방법을 사용하여이를 수행 할 수 있습니다 (예 :

  1. Adobe Acrobat 자르기 도구를 사용하여 이중 페이지의 한면을 자르고 자르기를 모든 페이지에 적용하십시오.
  2. pdftoolkit 의 'burst'명령을 사용하여 파일을 개별 페이지로 분할
  3. 파일 이름 바꾸기 도구 (예 : ReNamer )를 사용하여 순차적으로 파일 이름을 바꿉니다.
  4. pdftoolkit에서 'cat'명령을 사용하여 페이지를 다시 결합하십시오.

2

다음 스크립트를 사용하여 Mac 및 Linux에서 스캔 한 책을 처리합니다. 이것은 메모리 집약적 일 수 있습니다.

#!/bin/bash
#
# This script processes scanned books. After scanning the books have been cropped with
# Preview. This does kind of a "soft crop" that we need to make a bit "harder". 
#
# The second step is to take each page of the PDF and split this into two two pages, 
# because each page of the scanned document actually contains two pages of the book.
#
#

FILE=`mktemp`.pdf
FILE2=`mktemp`.pdf
FILE3=`mktemp`.pdf

echo "Making a temporary copy of the input file."

cp $1 $FILE

#
# Start cropping
#

echo "Cropping the PDF"

# The first regex removes all boxes but CropBox. The second regex renames the  CropBox as MediaBox

perl -pi.bak -e 's/\/(Media|Bleed|Art|Trim)Box[\n\l\f\s]*\[(.+?)\]//msg;' $FILE
perl -pi.bak -e 's/CropBox/MediaBox/g;' $FILE

echo "Validating the PDF"

#Run PDFTK to ensure that the file is OK

cat $FILE | pdftk - output $FILE2

#
# Done cropping, start splitting the pages
#

echo "Splitting the pages in two and changing to 200 dpi with imagemagick. Output goes to $FILE3"

convert -density 200  $FILE2 -crop 50%x0 +repage $FILE3

#
# Done spliting, copy the result in a new file
#


mv $FILE3 $1.pages.pdf

1

훌륭한 참조 주셔서 감사합니다. 나는 비슷한 문제에 있었지만 나를 위해 일한 것을 나누고 싶었다.

가로 방향의 세로 방향 텍스트가 왼쪽에만있는 가로 방향 타블로이드 pdf가 있습니다. 본질적으로 2 개의 타블로이드는 페이지 오른쪽에 내용이 없습니다. 비슷한 시작 지점이지만 타블로이드는 792 × 1224 (세로), 1124 x 792 (가로)이며 필요한 1/2 타블로이드의 포인트 정의는 612 x 792 포인트입니다.

"C:\Program Files\gs\gs9.10\bin\gswin64c.exe" -o left2.pdf -sDEVICE=pdfwrite -g6120x7920 -c "<</PageOffset [0 0]>> setpagedevice" -f "RFP.pdf"

8.5 x 11 세로로 필요한 내용을 훨씬 더 읽기 쉽게 만들었습니다.


0

내가 이해하는 것은 두 페이지 (한 장에 나란히 있음)를 보여주는 PDF 파일을 한 장에 한 페이지로 변환하여 두 장의 PDF 파일을 만들어야한다는 것입니다. 다시 말해 15 장에 총 30 페이지가있는 경우 PDF 파일을 각각 한 페이지를 표시하는 30 장의 PDF 파일로 변환해야합니다. 이 문제가 발생하면 1에서 30까지의 페이지 번호를 지정하여 Adobe acrobat XI PRO "추출 페이지 도구"를 사용했습니다.


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