PDF 분할

PDF를 범위별로 분할하거나 특정 페이지만 하나의 파일로 추출합니다. 모든 처리는 브라우저 안에서 이루어집니다.

모든 처리는 브라우저 내부에서 실행됩니다 — 파일·입력은 서버로 전송되지 않습니다.

사용법

PDF를 도구에 떨어뜨리면 페이지 수가 표시됩니다. 페이지 범위를 입력란에 적습니다 — `1-3, 7, 10-12`이면 페이지 1·2·3·7·10·11·12를 한 파일로 추출, `1-3 | 4-6 | 7-9`(파이프 구분)이면 범위마다 3개의 별도 파일을 생성합니다. 출력 PDF는 원본의 페이지 회전, 임베드 폰트, 벡터 콘텐츠, 문서 메타데이터(제목·작성자·생성일)를 보존합니다 — 분할은 구조적 작업이며 재렌더링이 아닙니다.

여러 페이지 문서에서 일부만 필요할 때(월간 명세서에서 영수증 한 장, 긴 매뉴얼에서 한 챕터, 계약서 서명 페이지)에 사용하세요. 모든 작업은 `pdf-lib`을 통해 브라우저 안에서 끝나고 파일은 업로드되지 않습니다. 재무제표, 사내 리포트, 제3자 서버에 보내고 싶지 않은 것을 다룰 때 중요합니다. 출력 파일은 보통 해당 페이지 + PDF 오버헤드 정도의 크기가 됩니다 — 분할로 내용이 압축되지는 않습니다.

예제

12페이지 명세서에서 영수증 1장 추출

입력
file:  statement-2026-03.pdf (12 pages)
range: 5
출력
statement-2026-03-pages-5.pdf (1 page)

1페이지 추출이 가장 흔한 사용법입니다 — 긴 명세서에서 영수증 한 장이나 거래 한 건을 빼내 동료나 경비 정산 시스템에 보냅니다. 출력 파일 크기는 대략 그 한 페이지 분량(텍스트 기반 명세서 페이지에서 50~200KB 정도)이며 12페이지 전체 크기가 아닙니다.

매뉴얼을 챕터별로 분할

입력
file:  api-handbook.pdf (180 pages)
range: 1-12 | 13-45 | 46-89 | 90-140 | 141-180
출력
api-handbook-pages-1-12.pdf   (12 pages — table of contents + intro)
api-handbook-pages-13-45.pdf  (33 pages — chapter 1)
api-handbook-pages-46-89.pdf  (44 pages — chapter 2)
api-handbook-pages-90-140.pdf (51 pages — chapter 3)
api-handbook-pages-141-180.pdf (40 pages — appendix)

파이프 구분(`|`) 범위는 범위마다 1개 파일을 생성하고, 브라우저는 별도의 PDF로(또는 도구가 제공하면 ZIP으로 묶어) 다운로드합니다. 긴 레퍼런스 문서를 챕터별로 나눠 개별 링크하거나 따로 호스팅할 때 유용합니다. 내부 상호 참조("92페이지 참조" 등)는 텍스트로는 남지만 링크로는 해석되지 않게 되어 고아 참조가 됩니다.

페이지 선택 추출 — 홀수 페이지만

입력
file:  scan.pdf (40 pages)
range: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39
출력
scan-odd-pages.pdf (20 pages, kept in original order)

양면 스캔에서 듀플렉스 스캐너가 홀수 페이지를 앞면, 짝수 페이지를 뒷면으로 교대 출력한 경우 필요한 쪽만 추출할 수 있습니다(서명·인증처럼 한 면만 필요할 때가 있습니다). 페이지 번호를 콤마 구분으로 입력하면 본 도구는 입력 순서를 유지하므로 `5, 1, 3`은 페이지 5·1·3 순서로 배열됩니다.

자주 묻는 질문

분할로 품질이 떨어지나요?

아니요 — 작업은 구조적이며 재렌더링이 아닙니다. `pdf-lib`은 요청된 페이지를 읽고 콘텐츠 스트림(텍스트·벡터·임베드 이미지)을 그대로 새 PDF에 복사해 씁니다. 이미지 해상도·폰트 충실도·벡터 정밀도가 정확히 보존됩니다. 바뀌는 것은 문서 수준 메타데이터(새 수정일, 약간 다른 파일 ID)와 페이지 수뿐입니다. 분할 파일의 한 페이지를 원본의 같은 페이지와 비교하면 픽셀 단위로 동일하게 렌더링됩니다.

최대 파일 크기는 얼마인가요?

엄격한 상한은 없지만 PDF 전체가 브라우저 메모리에 로드됩니다. 대부분의 노트북에서 실용 상한은 약 200~500MB이고 그 이상에서는 탭이 멈추거나 메모리가 부족할 수 있습니다. 1GB를 넘는 스캔에는 파일이 RAM에 머무르지 않고 처리를 흐르는 서버 측 도구(`qpdf`·Adobe Acrobat·`mutool extract`)를 쓰세요. 로드 페이지 수 임계도 비슷하며 파일 크기가 중간이어도 10000페이지 문서는 파서에 부담이 됩니다.

북마크와 폼 필드는 분할 후에도 남나요?

부분적으로 남습니다. 북마크(PDF 사이드바의 아웃라인·목차)는 분할 후 존재하지 않는 페이지 번호를 참조하는 경우가 많아서, `pdf-lib`은 북마크 자체는 유지하지만 링크 대상이 깨질 수 있습니다. 유지된 페이지에 임베드된 폼 필드는 값을 유지한 채 남고, 삭제된 페이지의 필드는 사라집니다. 디지털 서명은 구조적 변경이 있으면 무효화됩니다 — 분할된 파일은 서명이 된 "같은 문서"가 아니므로 Acrobat은 서명을 깨진 것으로 표시합니다. 서명된 문서에서 서명 유효성을 유지하면서 페이지를 추출할 수는 없습니다. 추출 결과에 다시 서명하세요.

비밀번호 보호 PDF도 분할할 수 있나요?

잠금 해제용 비밀번호를 먼저 제공할 수 있을 때만 가능합니다. PDF에는 비밀번호가 두 가지 있습니다 — **사용자 비밀번호**(열기 위해 필요)와 **소유자 비밀번호**(수정·인쇄·복사에 필요). `pdf-lib`은 둘 다 해독할 수 없으며 사용자 비밀번호를 제공할 때만 암호화된 PDF를 읽을 수 있습니다. 사용자 비밀번호는 있지만 소유자 비밀번호로 수정이 제한된 PDF에 대해 일부 도구는 소유자 비밀번호를 제거합니다(이는 암호화가 아닌 뷰어 측에서 강제하기 때문에 가능). 본 도구는 그렇게 하지 않습니다 — 문서 작성자의 명시 제한을 존중하기 위해서입니다.

분할과 병합은 어떻게 다른가요?

서로 역의 작업입니다. 분할은 PDF 하나를 받아 여러 개(또는 더 작은 하나)의 PDF를 생성합니다. 병합은 여러 PDF를 받아 하나로 합칩니다. 본 사이트의 PDF Merge 도구가 짝이 되는 존재이며 둘이 합쳐 페이지 단위 PDF 재구성의 대부분을 다룹니다. 재암호화나 재서명이 끼지 않는 한 왕복은 무손실입니다 — 50페이지 PDF를 10페이지씩 5개로 분할한 뒤 다시 병합하면 결과는 구조적으로 원본과 동일하며(같은 콘텐츠 스트림·같은 폰트·같은 이미지) 다른 것은 문서 메타데이터뿐입니다.

출력 파일이 입력과 거의 같은 크기인 이유는?

PDF는 폰트(전 페이지에서 공유)나 공유 객체 풀(여러 페이지에서 참조되는 이미지·컬러 프로파일·벡터 라이브러리)을 임베드하는 경우가 많습니다. 한 페이지만 추출할 때 `pdf-lib`은 그 페이지가 참조하는 모든 리소스를 포함해야 합니다 — 다른 페이지에서도 참조되더라도 파일 간 공유는 불가능하기 때문입니다. 그래서 12페이지 문서에서 페이지 5를 추출하면 전체 문서와 같은 폰트나 이미지가 들어갈 수 있습니다. 실제로 크기를 줄이고 싶다면 출력을 PDF 옵티마이저(`Ghostscript`·`qpdf --object-streams=generate`·온라인 옵티마이저)에 통과시키세요. 본 분할 도구는 정확성에 초점을 두며 압축이 아닙니다.

관련 개념

PDF(Portable Document Format, Adobe가 1993년 발표, 2008년 이후 ISO 32000)는 페이지 기술 형식으로 폰트·벡터 명령·래스터 이미지·문서 메타데이터를 한 파일에 감쌉니다. 컨테이너는 *간접 객체* 그래프이며 폰트는 한 번만 참조되어 곳곳에서 사용되고, 이미지는 한 번 저장되어 그것을 포함하는 모든 페이지에서 참조됩니다. 분할과 병합 같은 페이지 단위 작업은 이 그래프를 따라가며 필요한 페이지와 참조 리소스의 부분 집합을 선택해 새 파일을 씁니다.

**분할**은 기계적으로는 단순합니다. 유지할 페이지를 식별하고 콘텐츠 스트림을 순회해 참조되는 폰트·이미지·색공간을 찾고, 그 리소스를 새 파일에 복사하고, 참조하는 페이지 트리를 씁니다. 어려운 부분은 아무것도 깨뜨리지 않고 수행하는 것입니다. 북마크·명명된 점프 대상·하이퍼링크·폼 필드가 페이지 번호(`/Page 5`)나 객체 ID를 참조하므로 새 파일에서 갱신해야 합니다. 견고한 PDF 도구(`pdf-lib`·`qpdf`·Adobe Acrobat)는 일반 경우를 다루지만, XFA 폼·JavaScript 액션·암호화된 첨부 같은 엣지 케이스는 상용 도구가 필요한 경우가 많습니다.

생태계를 형성하는 3가지 인접 개념이 있습니다. **PDF/A**(ISO 19005)는 장기 보존용으로 제약된 PDF 부분 집합으로 폰트 임베드는 필수, 암호화 금지, JavaScript 금지입니다. PDF/A 문서를 분할하면 다른 페이지가 의존하던 폰트가 떨어질 수 있고 PDF/A 적합성이 무너집니다. 본 분할 도구는 PDF/A 주장을 유지하지 않습니다. **OCR(광학 문자 인식)**은 스캔 이미지 페이지를 검색 가능한 텍스트로 변환합니다 — 분할과는 별개의 작업이지만 스캐너 출신 문서를 분할하기 전에 필요한 경우가 많습니다. **PDF/UA**(보편적 접근성)는 스크린 리더용으로 PDF를 태그하고 읽기 순서 메타데이터를 더합니다. 분할은 유지된 페이지의 태그를 보존하지만 매달린 상호 참조가 남을 수 있습니다. 접근성이 중요한 문서는 분할 후 PAC(PDF Accessibility Checker)로 재검증하세요.

관련 도구