💡 tips

맥북에서 AppleScript로 전자책 캡쳐 자동화하기

dev!n 2025. 3. 12. 02:41

유명한 개발도서들은 대부분 학교 전자도서관에서 빌려볼 수 있다. 그치만 대여기간이 정해져 있기에 두꺼운 책은 기간안에 읽기가 거의 불가능하다. 그래서 저작권을 위반하지 않는 선에서 개인 참고용으로 Ebook을 저장하는 스크립트를 만들어 사용하고 있다. AppleScript는 Automator라는 기본앱으로 쉽게 실행할 수 있다.

Automator 사용 예시

주의사항

  • 처음 스크립트를 실행하면 맥북 시스템에 대한 권한을 요청한다. 권한을 허용하고 Automator를 다시 실행해보자.
  • 선택 영역 좌표값을 적당히 계산해서 넣어야 한다. 자신의 모니터 해상도를 알아내어 적당히 조정해보자.
  • 이북 앱이 최상단에 있어야 페이지 넘김이 제대로 작동한다. 따라서 스크립트 실행 중에 앱 전환을 하지 말고 기다리자.

소스코드

-- 기본 변수 설정
set repeatCount to 10 -- 캡쳐 반복 횟수 (예: 10번 캡쳐)

set baseFolder to "/Users/devin/Ebooks/" -- 기본 저장 경로
set ebookName to "Ebook1" -- 이북별 폴더 이름 (필요 시 변경)
set ebookFolder to baseFolder & ebookName

set captureRect to {100, 60, 1080, 1380} -- 선택 영역의 좌표값 (왼쪽 상단 X, 왼쪽 상단 Y, 가로 길이, 세로 길이) 

-- 저장 폴더가 존재하지 않으면 생성
do shell script "mkdir -p " & quoted form of ebookFolder

-- 이북 앱을 최상위로 활성화 (여기서 '이북앱'을 실제 앱 이름으로 변경하세요)
tell application "교보도서관" to activate

-- 앱이 완전히 활성화될 수 있도록 잠시 대기 (2초)
delay 2

-- 반복 캡쳐
repeat repeatCount times
    -- 현재 시간을 년-월-일-시-분-초 형식으로 얻기 (소수점 이하 초는 추가 도구 필요)
    set currentDate to do shell script "date +%Y-%m-%d-%H-%M-%S"
    set fileName to currentDate & ".png"
    set filePath to ebookFolder & "/" & fileName

    -- -x 옵션: 캡쳐 시 소리와 미리보기 없이 진행
    do shell script "screencapture -R" & (item 1 of captureRect) & "," & (item 2 of captureRect) & "," & (item 3 of captureRect) & "," & (item 4 of captureRect) & " " & quoted form of POSIX path of filePath

    tell application "System Events"
        key code 124 -- 오른쪽 방향키 코드 (예시)
    end tell

    -- 페이지 전환을 고려해 1초 대기
    delay 1
end repeat

캡쳐 이미지 PDF로 만들기 

캡쳐 이미지가 저장된 폴더. 이름순으로 정렬해야 PDF로 병합했을 때 페이지 순서대로 병합된다.
PDF로 변환할 이미지들을 모두 선택하여 'PDF 생성'을 하자.

참고