강사가 배포하는 슬라이드 프리젠테이션의 PDF 파일에는 각 애니메이션 단계에서 새 페이지(때로는 슬라이드당 20페이지)가 생성되기 때문에 많은 페이지가 포함되는 경우가 많습니다.
화면에서 슬라이드 쇼를 보고 싶을 때 유용합니다. 하지만 저는 슬라이드쇼를 인쇄하고 싶고, 종이를 절약하기 위해 전체 슬라이드쇼를 인쇄하고 싶습니다(모든 애니메이션 단계가 완료된 후).
이러한 PDF의 구조는 다음과 같습니다.
Page: 1/12, slide: 1
Page: 2/12, slide: 1
Page: 3/12, slide: 1 -> complete first slide (this is what I want to print)
Page: 4/12, slide: 2
...
나는 evince가 실제로 우리가 진행 중인 슬라이드를 추적한다는 것을 알아냈습니다. 위에서 언급한 것처럼 실제 페이지 번호 옆에 슬라이드 번호가 표시됩니다. 그래서 분명히 PDF 파일에는 슬라이드 번호가 저장되어 있고, 어느 페이지가 슬라이드의 마지막 페이지인지 식별하여 해당 슬라이드만 인쇄할 수 있어야 합니다.
그래서 내 질문은: pdftk나 GS 또는 유사한 도구를 사용하여 각 슬라이드의 마지막 페이지(동일한 슬라이드 번호의 마지막 페이지)를 추출하는 방법이 있습니까?
참고: 이 질문이 일반적인 질문일 거라고 생각했는데 유사한 게시물을 찾을 수 없습니다. 중복이라면 사과드립니다.
답변1
다음은 이 작업을 수행하고 Marco의 의견에 있는 예제에서 작동하는 스크립트입니다. 을 활용합니다 pdftk
.
#!/bin/sh
PAGES=$(pdftk $1 dump_data |
grep PageLabelNewIndex |
cut -d' ' -f2 |
xargs -n1 expr -1 + |
tail -n+2 |
tr '\n' ' ');
# Add last page
PAGES="${PAGES} $(pdftk $1 dump_data |
grep NumberOfPages |
cut -d' ' -f2)";
pdftk $1 cat ${PAGES} output $2
입력 파일을 첫 번째 인수로, 출력 파일 이름을 두 번째 인수로 사용합니다.