ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PDF 자르기, 55쪽에서 세 쪽 빼내는 데 사이트는 안 썼다
    외주개발 2026. 10. 22. 09:02
    반응형

    임대주택 공고문이 55쪽으로 왔는데 내 조건에 걸리는 건 12쪽부터 14쪽까지 세 쪽이었다. PDF 자르기를 해야 했다.

    검색하면 변환 사이트가 먼저 나온다. 파일을 올리면 잘라서 돌려주는 것. 공고문이면 몰라도 계약서나 견적서를 남의 서버에 한 번 올리는 건 좀 걸렸다.

    맥에 이미 있는 걸로 했다. 55쪽 1.6MB가 3쪽 95KB가 됐다.

    미리보기로 되긴 한다

    PDF를 더블클릭하면 미리보기로 열린다. 왼쪽 썸네일을 켜면 쪽이 쭉 나온다. 보기 메뉴에서 켜거나 ⌥⌘2.

    미리보기 썸네일 사이드바에 55쪽짜리 PDF가 나열된 화면

    여기서 필요 없는 쪽을 골라 지우고 다른 이름으로 저장하면 끝이다. 반대로 필요한 쪽만 끌어서 새 창에 떨어뜨려도 된다.

    둘 다 되는데 지우는 쪽이 실수가 적다. 끌어다 놓는 건 순서가 섞인다.

    아래에 이런 걸 적었다

    · 55쪽을 손으로 고르는 게 일이다
    · 한 줄로 부르게 만든 것
    · 설치 필요 없다고 썼는데 틀렸다
    · 자르면 용량도 준다
    · 용량만 줄이려면 자를 것도 없다

    필요한 데로 내려가면 됨

    55쪽을 손으로 고르는 게 일이다

    3쪽만 남은 PDF가 미리보기에 열린 화면

    3쪽짜리가 됐다. 여기까지는 5분이면 된다.

    문제는 지울 쪽이 52개라는 거다. 한 파일이면 참고 하는데, 같은 규칙으로 여러 개를 자를 거면 얘기가 다르다.

    내 다운로드 폴더를 세어보니 PDF가 255개에 1,144쪽이었다. 임대주택 공고문, 지원사업 공고문 같은 게 대부분이고 하나같이 30~55쪽이다. 실제로 읽는 건 자격 요건이랑 접수 일정 정도고.

    이걸 미리보기로 할 수는 없다.

    한 줄로 부르게 만들었다

    맥 파이썬에서 PDF를 다루는 게 된다. 열 줄이 안 된다.

    import sys
    from Foundation import NSURL
    import Quartz
    
    src, out, first, last = sys.argv[1], sys.argv[2], int(sys.argv[3]), int(sys.argv[4])
    doc = Quartz.PDFDocument.alloc().initWithURL_(NSURL.fileURLWithPath_(src))
    new = Quartz.PDFDocument.alloc().init()
    for i in range(first - 1, last):
        new.insertPage_atIndex_(doc.pageAtIndex_(i), new.pageCount())
    new.writeToFile_(out)
    print(f"{doc.pageCount()}쪽 → {new.pageCount()}쪽")

    pdfcut.py 로 저장해놓고 이렇게 부른다. 12쪽부터 14쪽까지만 남기는 거다.

    python3 pdfcut.py 원본_55쪽.pdf 잘라낸것.pdf 12 14

    터미널에서 pdfcut 스크립트를 실행해 55쪽이 3쪽으로 줄어든 출력

    파일 이름만 바꿔 가면서 돌리면 된다. 쪽 번호가 파일마다 다르면 그것도 인자로 받으면 되고.

    설치 필요 없다고 썼는데 틀렸다

    전에 이 얘기를 쓰면서 "맥 파이썬에 PDF 기능이 이미 들어 있어서 따로 깔 게 없다"고 적었다. 다시 해보니 아니었다.

    맥 기본 파이썬에서 Quartz 모듈을 찾지 못하는 에러와 pip 설치 결과

    맥에 기본으로 깔려 있는 /usr/bin/python3 은 3.9.6인데 여기엔 Quartz가 없다. ModuleNotFoundError 가 난다.

    내 맥에서 바로 됐던 건 그 전에 다른 작업 하면서 pyobjc를 깔아놨기 때문이었다. 그걸 기본이라고 착각하고 적은 거다.

    pip3 install pyobjc-framework-Quartz

    한 줄이면 된다. 깔 게 있다는 걸 알고 시작하는 거랑, 된다고 적힌 글 보고 따라 하다가 에러 만나는 건 다르다.

    그래서 한 번 안 되는 환경에서 돌려보는 게 맞다. 내 기계에서 되는 건 증거가 아니다.

    자르면 용량도 준다

    쪽수부터 확인했다.

    원본과 잘라낸 파일의 쪽수를 확인한 터미널 출력

    55쪽과 3쪽. 그다음에 파일 크기.

    원본 1.6MB와 잘라낸 95KB 파일 크기 비교

    1.6MB가 95KB가 됐다. 17분의 1이다. 쪽수가 18분의 1이니까 거의 쪽수대로 줄어든 셈이다.

    처음 공고문으로 했을 때는 1.1MB가 282KB였다. 그때는 4분의 1밖에 안 줄었는데, 남긴 쪽에 표나 그림이 몰려 있으면 그렇게 된다.

    메일에 붙일 때 이게 꽤 차이 난다. 첨부 제한에 걸리는 건 대부분 쪽수가 아니라 안에 든 이미지다.

    용량만 줄이려면 자를 것도 없다

    쪽수는 그대로 두고 파일만 가볍게 하려는 경우가 있다. 제출 서류처럼 다 내야 하는 것들.

    미리보기 내보내기 창의 Quartz 필터 목록에서 Reduce File Size 선택

    미리보기에서 파일 → 내보내기로 들어가면 Quartz 필터 칸이 있다. 거기 Reduce File Size 가 들어 있다. 이걸로 저장하면 안에 든 이미지가 압축되면서 용량이 준다.

    다만 스캔한 문서면 글씨가 뭉개질 수 있다. 제출용이면 저장하고 한 번 열어보는 게 낫다.

    같은 목록에 Black & White나 Gray Tone도 있는데, 그건 용량 줄이기용이 아니라 색을 바꾸는 거다. 흑백으로 보내야 하는 서류가 있을 때 쓴다.

    정리

    미리보기로 된다. 썸네일 켜고(⌥⌘2) 필요 없는 쪽 지우고 다른 이름으로 저장.

    여러 개를 같은 규칙으로 자를 거면 스크립트가 낫다. 단 pip3 install pyobjc-framework-Quartz 는 하고 시작해야 한다.

    자르면 용량도 같이 준다. 쪽수를 못 줄이는 경우엔 내보내기의 Reduce File Size.

    그리고 올릴 필요가 없다. 공고문이면 몰라도 계약서·견적서를 변환 사이트에 올리는 건 다시 생각해볼 일이다.

    같은 폴더에 hwp가 134개 쌓여 있는 얘기는 여기에 적어놨다. 사진 쪽은 이쪽이고, 용량을 어디까지 줄일 수 있는지는 따로 쟀다.

    정부 서류를 받으면 hwp 아니면 PDF다. 둘 다 여는 데 손이 간다.

    반응형
소개 · 연락처 · 개인정보처리방침
운영 프리시 · 상호 앤디 · 대표 손영은 · 사업자등록번호 708-38-01407
경기도 안산시 상록구 해안로 705, 3동 1층 107호 · admin@freesi.net
Designed by Tistory.