PDF를 분할하고 페이지를 추출하는 방법
PDF를 분할하면 선택한 페이지가 새 PDF 파일로 복사되고 원본은 그대로 남습니다. 이 가이드에서는 LeedyBox 도구의 두 가지 모드, 페이지 범위 입력법, 나눈 파일을 합한 크기가 원본보다 커질 수 있는 이유, 파일을 보내기 전에 확인할 점을 다룹니다.
분할이 유용한 경우
- 필요한 부분만 보낼 때: 예를 들어 48페이지짜리 계약서에서 서명이 필요한 두 페이지만 보내야 할 때.
- 업로드 양식에 파일 크기나 페이지 수 제한이 있을 때.
- 한꺼번에 스캔한 문서를 나눌 때: 영수증 30장을 스캐너에 한 번에 넣으면 파일 하나로 저장됩니다. 영수증 한 장이 한 페이지라면 ‘모든 페이지 추출’로 영수증마다 파일을 하나씩 만들 수 있습니다.
- 다른 도구에 넘길 페이지를 준비할 때: PDF를 JPG로 도구는 모든 페이지를 변환해 ZIP 하나로 받거나 페이지를 하나씩 클릭해 저장하는 방식입니다. 그래서 80페이지 보고서에서 5~12페이지를 먼저 추출해 두면 이미지 80장이 아니라 8장이 담긴 ZIP을 받을 수 있습니다(PDF 페이지를 JPG·PNG로 변환하기 참고).
페이지 순서를 바로잡거나 몇 페이지만 삭제하려는 경우라면 PDF 페이지 순서를 바꾸고 회전·삭제하는 방법을 참고하세요.
두 가지 모드, 세 가지 결과
내려받는 결과물은 선택한 탭과 선택한 페이지 수에 따라 달라집니다. report.pdf를 예로 들면 다음과 같습니다.
| 모드 | 결과 | 파일 이름 |
|---|---|---|
| 사용자 정의 범위 추출, 한 페이지 | 한 페이지짜리 PDF | report_page_7.pdf |
| 사용자 정의 범위 추출, 여러 페이지 | 선택한 페이지가 모두 원래 순서대로 담긴 PDF 하나 | report_extracted.pdf |
| 모든 페이지 추출 | 페이지마다 PDF 하나씩, ZIP 압축 파일로 묶음 | report_all_pages.zip(안에 report_page_1.pdf, report_page_2.pdf …) |
따라서 1-3, 5, 8-10을 입력하면 파일 세 개가 아니라 7페이지짜리 파일 하나가 만들어집니다. 부분별로 따로 받으려면 차례로 하나씩 추출하세요. 내려받은 뒤에도 문서가 열린 상태로 남아 있으므로 1-3을 입력해 내려받고, 이어서 5를 입력해 다시 내려받으면 됩니다. 여러 페이지를 추출한 파일은 이름이 모두 report_extracted.pdf이고 브라우저는 보통 같은 이름 뒤에 번호를 붙이므로, 받을 때마다 파일 이름을 바꿔 두세요.
단계별 사용 방법
- PDF 분할을 열고 PDF 파일을 선택하거나 여기에 드래그 앤 드롭하세요 영역에서 PDF 하나를 선택합니다. 여러 파일을 끌어다 놓으면 첫 번째 파일만 사용됩니다.
- 모든 페이지의 썸네일이 그려질 때까지 기다립니다. 그러면 탭 위에 파일 이름, 크기, 페이지 수가 표시되며, 처음에는 모든 페이지가 선택되어 있습니다.
- 사용자 정의 범위 추출 탭에서 페이지 범위 (예: 1-3, 5, 8-10) 칸에 입력하거나 썸네일을 클릭합니다. 이 칸에는 처음부터
1-40처럼 전체 범위가 들어 있으므로 먼저 내용을 지우거나 선택 해제를 클릭하세요. 전체 선택을 누르면 모든 페이지가 다시 선택되며, 선택 상태는 "총 페이지 수 40개 중 7개가 선택되었습니다."처럼 표시됩니다. - 또는 모든 페이지 추출 탭으로 바꿉니다. 이 모드에서는 선택한 페이지와 관계없이 모든 페이지가 추출됩니다.
- PDF 분할 및 다운로드를 클릭합니다. 처음부터 다시 하려면 파일 변경을 누르세요.
썸네일을 클릭하면 범위 칸의 내용이 간결한 형태로 바뀝니다. 예를 들어 2, 3, 4, 9페이지를 선택하면 2-4, 9가 됩니다. 썸네일은 낮은 해상도로 그려지므로 실제 내용은 내려받은 파일에서 확인하세요.
페이지 범위 입력 방법
숫자는 파일 안에서의 위치를 뜻하며, 썸네일 아래 배지에 표시된 번호처럼 1부터 시작합니다.
- 항목은 쉼표로 구분하고 범위는 하이픈으로 표시합니다. 쉼표나 하이픈 앞뒤의 공백은 상관없습니다.
- 순서와 중복도 상관없습니다.
8-10, 1-3, 2를 입력하면 1, 2, 3, 8, 9, 10페이지가 원래 순서대로 추출됩니다. 10-8은 8~10페이지로 처리되고, 40페이지 파일에서38-45는 40페이지까지만 선택됩니다. 마지막 페이지를 넘는 번호를 하나만 쓰거나 0을 쓰면 무시됩니다.5-나-3처럼 한쪽 끝이 비어 있는 범위는 무시되므로5-40처럼 쓰세요.- 일반 하이픈(-)만 인식됩니다. 워드프로세서에서 붙여넣은 엔 대시를 쓴
1–3은 1페이지만 선택하며, 물결표를 쓴1~3이나1 3,1;3도 마찬가지입니다.
인쇄된 쪽 번호는 파일 안의 위치와 다른 경우가 많습니다. 보고서의 1페이지 앞에 표지 한 장과 앞부분 네 페이지(i~iv)가 있다면, 인쇄된 12페이지는 파일의 17번째 페이지입니다(1 + 4 + 12). 내려받기 전에 강조 표시된 썸네일을 확인하세요.
나눈 파일의 크기를 합하면 원본보다 커질 수 있는 이유
내장 글꼴이나 머리글 로고처럼 여러 페이지에서 쓰이는 글꼴과 이미지는 보통 원본에 한 번만 저장되고 모든 페이지가 함께 사용합니다. 새 파일에는 그 파일의 페이지가 참조하는 리소스가 하나하나 따로 들어 있어야 합니다. pdf-lib는 이런 리소스를 있는 그대로 복사합니다. 글꼴을 복사한 페이지에 쓰인 문자만 남도록 줄이지 않고, 페이지의 리소스 목록에 올라 있지만 실제로는 쓰이지 않는 항목도 빼지 않습니다. 그래서 한 페이지짜리 파일에도 문서 전체를 위해 만든 글꼴 서브셋이 들어갈 수 있고, 모든 페이지가 리소스 목록 하나를 함께 쓰는 파일이라면 그 목록에 있는 글꼴과 이미지가 모두 들어갈 수 있습니다.
테스트에서는 Python의 ReportLab으로 40페이지짜리 A4 텍스트 보고서(DejaVu 글꼴 두 개를 서브셋으로 내장하고 모든 페이지에 900 × 240픽셀 JPEG 로고를 넣음)를 만든 뒤, LeedyBox 도구가 불러오는 것과 같은 버전인 pdf-lib 1.17.1로 Node.js에서 도구와 같은 호출을 사용해 분할했습니다.
| 결과물 | 크기 |
|---|---|
| 원본, 40페이지 | 약 151KB |
| 한 페이지짜리 PDF 각각 | 약 86KB |
| 40페이지 전체를 각각의 파일로(ZIP) | 약 3.4MB, 원본의 약 23배 |
1-3, 5, 8-10을 7페이지 PDF 하나로 |
약 94KB |
스캔본과 비슷한 파일은 결과가 달랐습니다. Pillow로 1,240 × 1,754픽셀 회색조 JPEG(150dpi)를 넣어 만든 A4 10페이지 파일은 약 2.6MB였고, 한 페이지짜리 파일 10개를 합한 크기도 약 2.6MB였습니다. 공유되는 리소스가 없기 때문입니다. 실제 수치는 파일마다 다르지만, 요약하면 다음과 같습니다.
- 스캔본은 페이지 수가 줄어드는 만큼 대체로 비례해 작아지지만(테스트한 스캔본에서 7페이지를 추출한 파일은 약 1.8MB), 텍스트 문서는 글꼴과 공유 이미지 때문에 일정한 기본 크기가 남습니다.
- 여러 페이지를 한 파일에 담으면 같은 페이지를 각각의 파일로 나눌 때보다 대개 용량이 적습니다.
- 이 도구는 PDF를 압축하지 않은 채 ZIP에 담으므로 ZIP 크기는 안에 든 파일을 합한 크기와 비슷합니다.
그래도 파일이 너무 크다면 PDF 압축하는 방법을 참고하세요.
새 파일에 남는 것과 사라지는 것
페이지는 다시 렌더링되지 않고 복사됩니다. 텍스트는 선택할 수 있는 상태로 남고, 이미지는 다시 압축되지 않으며, 페이지 크기와 회전도 유지됩니다. 복사된 페이지에 있는 웹 링크도 그대로 남습니다. 하지만 문서 전체에 속한 요소는 복사되지 않으며, 일부 페이지 기능은 이런 요소에 의존합니다.
- 책갈피와 페이지 레이블(i, ii, iii 같은 사용자 지정 번호).
- 제목, 작성자 등 문서 속성. 새 파일에는 생성 프로그램(Producer)이 pdf-lib로, 작성일이 분할한 시각으로 기록됩니다.
- 접근성 태그(화면 낭독기가 제목과 읽기 순서를 파악하는 데 쓰는 구조). 원본에 태그가 있어도 새 파일에는 없습니다.
- 목차 항목 같은 내부 링크는 대상 페이지를 추출하지 않았거나, 문서 수준에 저장되는 이름 있는 대상(named destination)을 사용하는 경우 아무 곳으로도 이동하지 않을 수 있습니다. 양식 필드도 더 이상 입력할 수 없게 될 수 있는데, 필드가 속한 양식 역시 문서 수준에서 정의되기 때문입니다.
- 디지털 서명은 유효한 상태로 남지 않습니다. 서명은 원본 파일의 바이트 하나하나를 대상으로 하므로, 복사된 페이지에 서명이 여전히 보이더라도 새 파일에 대해서는 아무것도 증명하지 못합니다. 서명된 원본은 따로 보관하세요.
분할은 민감한 페이지를 안전하게 제거하는 방법이 아닙니다
pdf-lib 1.17.1로 한 테스트에서, 1페이지에 5페이지로 가는 링크가 있는 6페이지짜리 PDF에서 1페이지를 추출했습니다. 새 파일에는 한 페이지만 표시되었고 텍스트 추출 도구도 1페이지의 텍스트만 찾아냈지만, 5페이지의 내용이 사용되지 않는 데이터로 파일 안에 저장되어 있어 파일의 내부 구조를 살펴보면 누구나 읽을 수 있었습니다. 목차나 상호 참조 링크도 이런 식으로 다른 페이지를 함께 끌어올 수 있습니다. 복사한 페이지에 숨겨진 내용, 예를 들어 검은 상자 아래의 텍스트나 보이는 영역 밖에 있는 내용도 그대로 복사됩니다. 기밀 자료라면 PDF 편집기의 가림 처리(redaction)나 숨은 정보 제거(sanitize) 기능을 사용하거나, PDF를 JPG로 도구로 만든 페이지 이미지를 보내세요. 이미지에는 페이지가 그려진 모습만 담기고 텍스트 레이어나 숨겨진 개체는 담기지 않습니다. 다만 그 대신 텍스트를 선택하거나 검색할 수 없게 됩니다.
자주 생기는 문제와 해결 방법
- "…은(는) 브라우저에서 읽을 수 없거나 손상된 PDF 파일입니다." 파일이 손상되었거나, 열 때 암호가 필요한 파일일 수 있습니다. 이 도구에는 암호 입력란이 없습니다. 허용된다면 암호를 입력할 수 있는 애플리케이션에서 보호를 해제한 사본을 저장하세요.
- 썸네일은 표시되지만 분할할 때 암호화(encrypted) 관련 오류가 나는 경우. 암호 없이 열리지만 암호화된 PDF입니다. 편집 제한이나 인쇄 제한 같은 권한 설정은 이렇게 암호화된 형태로 저장됩니다. 미리보기는 PDF.js로 그리지만 분할은 pdf-lib가 처리하는데, 이 도구가 pdf-lib를 호출하는 방식으로는 암호화된 파일이 거부됩니다. 이 도구는 이런 보호를 제거하거나 우회하지 않습니다.
- "추출할 페이지를 최소 한 페이지 이상 선택해 주세요." 유효한 페이지가 하나도 선택되지 않은 상태입니다. 예를 들어 선택 해제를 누른 뒤이거나 한쪽 끝이 비어 있는 범위를 입력한 경우입니다.
- 엉뚱한 페이지가 추출되는 경우. 엔 대시나 물결표를 썼는지, 쉼표가 빠졌는지, 인쇄된 쪽 번호를 입력했는지 확인하세요.
- 긴 파일에서 느린 경우. 썸네일을 모두 그린 뒤에야 조작 화면이 나타나고 그때까지 진행 표시줄이 약 5분의 1 지점에 머물러 있어서, 긴 파일은 멈춘 것처럼 보일 수 있습니다. 또한 ‘모든 페이지 추출’은 모든 파일과 ZIP을 메모리에서 만듭니다. 도구 자체에서 정한 크기 제한은 없지만, 컴퓨터에서는 처리되는 아주 큰 파일이 휴대폰에서는 실패할 수 있습니다.
파일을 보내기 전에
각 파일의 페이지 수, 첫 페이지와 마지막 페이지, 크기를 확인하고 contract_signature_pages.pdf처럼 내용을 알 수 있는 이름을 붙이세요. 원본은 보관해 두세요. 나눈 부분을 다시 합치려면 PDF 병합을 사용하세요. 원본에 인쇄된 쪽 번호가 없고 추출한 부분의 번호를 예를 들어 31부터 시작해야 한다면 PDF에 페이지 번호 추가하기를 참고하세요. 이 페이지는 PDF.js, pdf-lib, JSZip을 leedybox.com에서 직접 불러오지만, 파일은 브라우저에서 읽고 분할하며 LeedyBox 서버로 전송되지 않습니다.
자주 묻는 질문
PDF를 30페이지마다 자동으로 나눌 수 있나요?
자동으로 나누는 옵션은 없습니다. ‘사용자 정의 범위 추출’로 부분마다 따로 추출하세요. 120페이지 파일이라면 1-30, 31-60, 61-90, 91-120을 차례로 입력해 네 번 내려받아야 합니다.
1~3페이지와 7페이지를 한 번에 별도 파일 두 개로 받을 수 있나요?
한 번에는 안 됩니다. ‘사용자 정의 범위 추출’은 내려받을 때마다 파일 하나를 만들므로 1-3을 추출한 다음 7을 추출하세요. 모든 페이지를 한 장씩 따로 받으려면 ‘모든 페이지 추출’을 사용하세요.
추출하면서 페이지 순서를 바꿀 수 있나요?
아니요. 페이지는 원래 순서를 유지합니다. 결과 파일의 순서는 PDF 페이지 정리에서 바꾸세요.
분할하면 품질이 떨어지나요?
아니요. 페이지를 다시 렌더링하지 않고 pdf-lib로 복사하므로 텍스트와 이미지는 그대로 유지됩니다. 다만 앞에서 설명한 것처럼 책갈피, 페이지 레이블 같은 문서 수준의 요소는 사라질 수 있고, 링크나 양식 필드가 작동하지 않을 수 있습니다.
인쇄된 번호가 23인 페이지를 PDF 뷰어는 왜 1페이지로 표시하나요?
뷰어는 페이지 레이블이 없는 새 파일 안에서의 위치를 세기 때문입니다. 인쇄된 번호는 페이지 내용의 일부이므로 바뀌지 않습니다. PDF 페이지 번호 추가로 원하는 시작 번호부터 새 번호를 넣을 수 있지만, 번호를 페이지 위에 덧붙일 뿐 인쇄된 번호를 지우지는 않으므로 아직 번호가 없는 페이지에 알맞습니다.