두 파일 사이의 페이지를 번갈아 가며 PDF 출력 파일 만들기

두 파일 사이의 페이지를 번갈아 가며 PDF 출력 파일 만들기

나는 많은 페이지로 구성된 PDF 파일을 A라고 부르겠습니다. 그런 다음 단일 페이지로 구성된 두 번째 PDF 파일을 B라고 부르겠습니다.

내 목표는 다음 패턴을 사용하여 출력 파일을 O라고 부르도록 하는 것입니다.

O[1] = A[1]
O[2] = B[1]
O[3] = A[2]
O[4] = B[1]
O[5] = A[3]
O[6] = B[1]
O[7] = A[4]
O[8] = B[1]
...

즉, A 페이지와 B 페이지를 인터리브하고 싶습니다. 배경 설명을 위해 A 파일에는 제가 수강한 강좌의 슬라이드가 포함되어 있으며, 가로선으로 채워진 단일 페이지로 B 파일을 만들었습니다.

결과 출력 파일을 사용하면 슬라이드 오른쪽에 메모를 배치할 수 있습니다(한 장에 두 페이지를 인쇄할 예정이므로).

LibreOffice에서 모든 단일 페이지를 가져오는 작업을 수행할 수 있지만 다른 파일에 대해 쉽게 실행할 수 있는 스크립트(아마도 pdftk?)를 찾고 있습니다.

답변1

페이지를 대조하는 것입니다. 여기서는 B를 다음과 같이 사용합니다.이상한/직장그리고 A는심지어/뒷면(OP의 정확한 요구 사항에 따라) 단, 사용 가능한 B 페이지가 충분하지 않은 경우는 제외됩니다. 첫 번째 작업에서 충분한 횟수만큼 복제되어야 합니다.

A페이지(따라서뒷면)가 B 페이지 왼쪽에 표시되면 하나의 가드가 있어야 합니다.직장페이지 먼저: 예를 들어 추가 B 페이지입니다.

  • A의 페이지 수를 세어보세요. 10페이지가 있다고 가정해 보세요.

    이는 총 10+1 = 11(또는 아래 0에서 10까지)에 대해 하나의 추가 B 첫 페이지가 필요하다는 것을 의미합니다. 이 카운트를 자동화하는 방법이 있는 경우 아래 루프의 상위 값으로 사용해야 합니다. 나는 그런 방법을 모른다.

  • 첫 번째 명령에서 복제하기에 충분한 B 페이지(B의 고유 페이지 B1)를 쉘 루프에서 생성하고 pdftk이를 통해 공급합니다.표준 출력두 번째 pdftk명령 으로표준입력B 부분의 경우 A를 따라 정렬합니다.

    pdftk B=B.pdf cat $(for page in $(seq 0 10); do echo B1; done) output - | pdftk A=A.pdf B=- shuffle B A output O.pdf
    

    또는 더 읽기 쉬운 형식의 동일한 분할:

    pdftk B=B.pdf \
          cat $(for page in $(seq 0 10); do echo B1; done) \
          output - | \
    pdftk A=A.pdf \
          B=- \
          shuffle B A \
          output O.pdf
    

    참고: 이것이 명확하지 않은 경우 쉘 루프가 풀리면 다음과 같이 해결됩니다.

    pdftk B=B.pdf cat B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 output - | pdftk A=A.pdf B=- shuffle B A output O.pdf
    

페이지 순서가 A와 B 사이에서 반전되면(B 페이지가 아닌 A 페이지로 인쇄를 시작하기 위해) B에서 한 페이지를 덜 생성하고(마지막 B 페이지는 필요하지 않을 수 있음) 마지막 B 페이지 shuffle B A로 변경합니다. shuffle A B명령.

여기서는자바 (재)구현pdftk, 최근 배포판에 패키징된 것이 사용되었습니다.

관련 정보