프레젠테이션 미니어처 요약본 만들기

발표 자료 만들 때 모 채널에서 “Summarizing your presentation with miniature slides”라는 글을 링크해줘서 따라해봤다. 프레젠테이션 마지막 페이지를 “Thankyou” 같은 걸로 의미없이 낭비할 게 아니라, 전체 발표 내용을 요약해서 보여주면서 그 페이지에서 추가적인 논의를 하거나 질문 받거나 하라는 것. 그 방법으론 bullet-style로 글로 요약하거나, 주요 슬라이드를 미니 페이지 형식으로 모아서 보여주는 걸 제시한다.

지난 번 발표 때는 첫번째 방법을 써 봤고, 이번엔 두번째 방법을 시도 해봤다. 그런데 저 글에 나와있는 키노트에서 미니어처 슬라이드 만드는 방식이 대략,

  1. 특정 슬라이드 페이지를 선택한 후에 Command + C
  2. “미리보기” 에서 Command + N 으로 붙여넣어서 새로 생성 (.pdf)
  3. 다시 이걸 “미리보기” 문서 창에서 Command + C
  4. 키노트에 다시 Command + V로 붙여넣기 한 후 크기 조절

이다. 일단 번잡하고 (키노트 -> 미리보기 -> 키노트; 이걸 각 페이지마다 해야), 용량도 크고 (PDF로 변환하면 20 MiB 정도였는데, 요약 페이지 넣고나니 대략 60 MiB) 뭔가 좀 아닌 것 같더라. 그래서 아래와 같은 스크립트를 만들었다.

#!/bin/bash -ex

/usr/bin/osascript <<EOF
on run
 tell application "Keynote"
 set doc to open "{키노트 파일 경로}"
 export doc as PDF to POSIX file "/tmp/tmp.pdf"
 end tell
end run
EOF

PDFOUT=/tmp/tmp.pdf

convert "${PDFOUT}[3]" -resize 640 /tmp/summary-1.png
convert "${PDFOUT}[5]" -resize 640 /tmp/summary-2.png
convert "${PDFOUT}[7]" -resize 640 /tmp/summary-3.png
convert "${PDFOUT}[15]" -resize 640 /tmp/summary-4.png
convert "${PDFOUT}[21]" -resize 640 /tmp/summary-5.png
convert "${PDFOUT}[25]" -resize 640 /tmp/summary-6.png
convert "${PDFOUT}[27]" -resize 640 /tmp/summary-7.png
convert "${PDFOUT}[32]" -resize 640 /tmp/summary-8.png
convert "${PDFOUT}[37]" -resize 640 /tmp/summary-9.png

convert /tmp/summary-{1,2,3}.png +append /tmp/row1.png
convert /tmp/summary-{4,5,6}.png +append /tmp/row2.png
convert /tmp/summary-{7,8,9}.png +append /tmp/row3.png

convert /tmp/row{1,2,3}.png -append PNG24:/tmp/ndc-summary.png

cp /tmp/ndc-summary.png ~/Documents/ndc-2014-summary.png

다음과 같은 일을 한다:

  1. AppleScript를 실행해서 문서를 열고 + PDF 로 내보낸다
  2. ImageMagick을 써서 PDF의 특정 페이지를 PNG 파일로 만든다 (여기선 총 9개 페이지)
  3. 다시 ImageMagick으로 한 줄이 될 이미지 세 개를 묶는다 (convert +append)
  4. 이 세 줄을 하나의 이미지로 합친다 (convert -append); 단 이 결과물은 PNG24 포맷 (RGB 채널 각각 1 bytes)
  5. 적당한 디렉터리에 결과 이동

이런걸 이용해서 미니어처 페이지로 만든 요약 슬라이드에 붙여넣고 끝.