-
PDF 합치기, 파일 12개를 올리지 않고 맥에서 끝냈다외주개발 2026. 10. 23. 08:57반응형
계약서를 받았는데 쪽마다 따로 와서 파일이 12개였다. PDF 합치기를 해야 했다.
검색하면 변환 사이트부터 나온다. 12개를 올리고 받아 오는 건데, 계약서를 남의 서버에 올리는 게 좀 걸렸다.
맥에 이미 있는 걸로 했다. 240KB짜리 12개가 81KB 한 개가 됐다.
파인더에서 바로 된다
제일 짧은 길이 여기다. 합칠 PDF를 다 고르고 오른쪽 버튼을 누르면 맨 아래에 빠른 동작이 있다.

파인더에서 PDF 12개를 선택하고 빠른 동작 PDF 생성 메뉴를 연 화면 PDF 생성을 누르면 끝이다. 앱을 열 것도 없고 올릴 것도 없다.
결과는 같은 폴더에 생긴다. 이름은 첫 번째 파일 이름 뒤에 숫자가 붙는 식이라, 내 경우
스캔_1 2.pdf가 나왔다. 이게 합친 파일인지 복제본인지 헷갈리게 생겨서 바로 이름을 바꾸는 게 낫다.아래에 이런 걸 적었다
· 미리보기로 하는 법
· 10쪽이 2쪽 앞으로 가는 이유
· 개수가 많을 때 한 줄로
· 합치면 용량도 준다필요한 데로 내려가면 됨
쪽 순서를 손보려면 미리보기
파인더 쪽은 순서를 못 건드린다. 끼워 넣거나 빼야 하면 미리보기로 연다.

미리보기에서 PDF를 열었을 때 왼쪽에 비어 있는 썸네일 칸 왼쪽 칸이 썸네일 자리다. 안 보이면 보기 메뉴에서 켜거나 ⌥⌘2.
여기에 다른 PDF를 끌어다 놓으면 붙는다. 썸네일끼리 위아래로 끌어서 순서도 바꾼다.

12쪽으로 합쳐진 PDF가 미리보기 썸네일에 순서대로 나열된 화면 12쪽이 됐다. 다 됐으면 다른 이름으로 저장한다.
그냥 저장하면 끌어다 놓은 쪽이 아니라 받은 쪽 파일이 바뀐다. 스캔_1.pdf 를 열어서 거기에 나머지를 떨어뜨렸으면 스캔_1.pdf 가 12쪽짜리가 되는 거다. 원본을 남겨야 하면 복제부터 하고 시작한다.
10쪽이 2쪽 앞으로 간다
파인더에서는 이 문제가 안 보인다. 파인더가 파일 이름 속 숫자를 숫자로 읽어서 1, 2, 3 순으로 세워 주기 때문이다.
터미널은 안 그런다.

터미널에서 스캔 파일 12개가 1 10 11 12 2 순으로 나열된 화면 10, 11, 12가 2보다 앞에 온다. 글자로 비교해서
1다음 글자가0이면2보다 작다고 보는 거다.스캔본이 9장까지면 안 걸리고 10장부터 걸린다. 그래서 처음 몇 번은 멀쩡하다가 어느 날 갑자기 순서가 섞인다.
개수가 많으면 한 줄로
12개는 파인더로 해도 된다. 폴더가 여러 개고 각각 수십 장이면 얘기가 다르다.
import sys, re from Foundation import NSURL import Quartz def num(path): # 파일명 속 숫자를 숫자로 읽는다 return [int(t) if t.isdigit() else t.lower() for t in re.split(r'(\d+)', path)] out, files = sys.argv[1], sorted(sys.argv[2:], key=num) merged = Quartz.PDFDocument.alloc().init() for f in files: doc = Quartz.PDFDocument.alloc().initWithURL_(NSURL.fileURLWithPath_(f)) for i in range(doc.pageCount()): merged.insertPage_atIndex_(doc.pageAtIndex_(i), merged.pageCount()) merged.writeToFile_(out) print(f"{len(files)}개 → {merged.pageCount()}쪽")pdfmerge.py로 저장하고 이렇게 부른다.python3 pdfmerge.py 합친것.pdf 스캔_*.pdf
터미널에서 pdfmerge 스크립트로 12개 파일을 12쪽으로 합친 출력 맥 기본 파이썬에는 이걸 돌릴 모듈이 없다.
/usr/bin/python3은 3.9.6인데 Quartz가 안 들어 있어서ModuleNotFoundError가 난다.pip3 install pyobjc-framework-Quartz한 줄 깔고 시작하면 된다.
같은 12개인데 결과가 다르다
위 코드에서
num함수가 하는 일이 그거다. 파일명을 숫자 구간으로 쪼개서 숫자로 비교한다.
그냥 정렬했을 때와 숫자로 정렬했을 때의 쪽 순서 비교 윗줄이 그냥 정렬한 것이고 아랫줄이 숫자로 정렬한 것이다. 같은 파일 12개로 만들었는데 안에 든 순서가 다르다.
합치고 나면 겉으로는 똑같이 12쪽짜리 PDF다. 열어서 쪽을 넘겨보기 전에는 모른다.
그래서 합친 다음에 첫 쪽과 마지막 쪽은 눈으로 본다. 계약서면 더 그렇다.
합치면 용량도 준다

12개 파일 합계 240KB와 합친 파일 81KB 비교 12개 합쳐서 240KB였는데 합친 파일은 81KB다. 3분의 1이다.
PDF마다 글꼴 정보 같은 게 따로 들어 있어서 그렇다. 12번 중복으로 들어가 있던 게 한 번으로 정리된다.
스캔본처럼 안에 이미지가 든 파일은 이만큼 안 준다. 줄어드는 건 중복되는 부분이지 그림이 아니다.
정리
한두 번이면 파인더. 파일 고르고 오른쪽 버튼, 빠른 동작, PDF 생성.
순서를 손봐야 하면 미리보기. ⌥⌘2로 썸네일 켜고 끌어다 놓는다. 저장 전에 원본이 바뀌는지 본다.
개수가 많으면 스크립트. 단 파일명 정렬을 숫자로 바꿔 놓지 않으면 10쪽이 2쪽 앞으로 간다.
그리고 올릴 필요가 없다. 공고문이면 몰라도 계약서를 변환 사이트에 넣는 건 다시 생각해볼 일이다.
반대로 자르는 쪽은 여기에 적어놨다. 한글 파일이 섞여 있으면 이쪽이고, 사진 용량은 따로 쟀다.
12개를 다 올렸으면 10분은 걸렸을 거다.
반응형'외주개발' 카테고리의 다른 글
PDF 자르기, 55쪽에서 세 쪽 빼내는 데 사이트는 안 썼다 (0) 2026.10.22 이미지 파일 용량 줄이기, 축소했는데 더 커지는 경우가 있다 (0) 2026.10.21 숨은고수 찾기에서 평점 5.0은 기준이 안 된다 (0) 2026.10.20 포트원 요금표에 안 적힌 비용을 결제 붙이고 알았다 (0) 2026.10.19 개발 외주 인수인계 198GB 받아보고 알게 된 것 (0) 2026.10.16