PDF 나누기
예: 1-3, 5, 8-12 · 끝을 비우면 마지막 쪽까지 (예: 8-)
파일을 넣으면 페이지가 여기에 표시됩니다.
누르기 전에 결과를 알려 줍니다
나누기에서 가장 흔한 사고는 파일이 예상보다 훨씬 많이 나오는 것입니다. 120쪽짜리를 열어 두고 "한 쪽씩"을 눌러 파일 120개를 받는 일이 실제로 일어납니다. 대부분의 도구는 실행한 뒤에야 개수를 알려 줍니다.
여기서는 버튼 위에 「PDF 12개(총 120쪽)가 ZIP 하나로 저장됩니다」가 미리 적힙니다. 그리고 그 문장을 만드는 계산과 실제로 파일을 만드는 계산이같은 함수입니다 — 화면에 적힌 개수와 실제 결과가 어긋날 수 없습니다.
결과가 하나면 PDF로, 여럿이면 ZIP 하나로 저장됩니다. 파일이 여러 개일 때 이름은 계약서 1-3.pdf, 계약서 4-6.pdf처럼 쪽 번호가 들어갑니다. 괄호 꼬리표 대신 번호를 쓰는 이유는 이름순으로 정렬했을 때 쪽 순서대로 서게 하기 위해서입니다.
세 가지 방식
범위로 나누기. 1-3, 5, 8-12처럼 적으면 범위마다 파일이 하나씩 나옵니다. 이 예시는 세 개입니다. 끝을 비우면 마지막 쪽까지라는 뜻입니다 (8-). 한국어권에서 익숙한 물결표(3~5)도 그대로 알아듣습니다.
몇 쪽씩 나누기. 정해진 쪽수로 기계적으로 자릅니다. 100쪽을 30쪽씩 나누면 30·30·30·10입니다 — 마지막 조각은 남는 만큼만 갖고, 버리거나 늘리지 않습니다.
필요한 쪽만 뽑기. 아래 페이지 타일을 눌러서 고릅니다. 고른 쪽만 남고 나머지는 버려집니다. 기본은 한 파일로 모으는 것이고, 체크를 풀면 고른 쪽이 각각 낱장 파일이 됩니다.
합치기 체크박스는 "범위"와 "필요한 쪽만"에만 있습니다. "몇 쪽씩"에서는 잘랐다가 다시 붙이면 원본이므로 선택지 자체가 성립하지 않습니다.
범위 순서로 쪽 순서를 바꿀 수 있습니다
의도적으로 남겨 둔 동작이 하나 있습니다. 범위를 적은 순서가 결과의 쪽 순서입니다. 합치기를 켜고 3-4, 1-2라고 적으면 3·4·1·2쪽 순서의 문서가 나옵니다.
정렬해 버리면 "뒤 장을 앞으로 보내려는" 의도가 사라지는데, 그건 실제로 쓰이는 용법입니다 — 표지가 뒤에 붙어 스캔된 문서를 바로잡을 때가 대표적입니다. 그래서 적은 순서를 그대로 지킵니다.
다만 "필요한 쪽만 뽑기"에서는 언제나 오름차순입니다. 타일을 누르는 순서가 의미를 갖는다고 보는 사람은 없고, 그렇게 만들면 실수로 다시 누른 순간 순서가 뒤집힙니다.
페이지 타일에 왜 그림이 없나요
아래 타일은 쪽 번호와 실제 문서의 가로세로 비율만 보여 줍니다. 실제 페이지 그림은 그리지 않습니다.
그림을 그리려면 PDF 렌더링 엔진을 하나 더 받아야 하는데, 압축 해제 기준 1.7MB 정도입니다. 이 도구가 이미 받는 PDF 라이브러리가 523KB인 것과 비교하면미리보기 하나 때문에 다운로드가 네 배가 됩니다.
대신 비율은 실제 문서에서 가져옵니다. 쪽 회전까지 반영하므로 세로 문서 중간에 가로 페이지가 끼어 있으면 눈에 띕니다. 그리고 이 도구를 쓰는 대부분의 상황에서는 쪽 번호를 이미 알고 있습니다 — 뷰어에서 문서를 보다가 "3쪽부터 7쪽만 필요하다"고 판단해서 여기로 오기 때문입니다.
나누면 무엇이 남고 무엇이 사라지나요
남는 것: 각 쪽의 내용 그대로입니다. 글자는 글자로 남고 다시 압축하지 않으므로 화질 손실이 0입니다. 쪽 크기와 회전도 그대로 따라옵니다.
사라지는 것: 문서 전체의 목차(북마크), 다른 쪽을 가리키던 내부 링크, 양식 필드의 값, 전자서명입니다. 특히 전자서명은 반드시 깨집니다 — 서명은 문서 전체에 대한 보증이라 일부만 떼어 내면 성립하지 않습니다.
남에게 줄 문서라면 한 번 더 확인하세요. 나누기는 필요 없는 쪽을 결과에서 빼는 것이지 원본을 지우는 것이 아닙니다. 반대로, 민감한 쪽을 빼고 내보내는 용도로는 잘 맞습니다 — 뷰어의 "일부만 인쇄"와 달리 결과 파일 안에 그 쪽의 데이터가 아예 들어가지 않습니다.
한계와 주의
한 문서당 1,000쪽까지 다룹니다. 처리 성능이 아니라 화면이 정한 숫자입니다 — 쪽마다 타일을 하나씩 그리므로 쪽수가 곧 화면 요소 수이고, 수천 개가 되면 처리보다 스크롤이 먼저 죽습니다.
한 번에 한 문서를 나눕니다. 여러 문서를 동시에 나누는 흐름은 설정이 문서마다 달라야 해서 화면이 급격히 복잡해집니다. 여러 개를 같은 규칙으로 자를 일이 실제로 생기면 그때 다시 보겠습니다.
암호가 걸린 PDF는 처리하지 않습니다. 뷰어에서 암호를 풀어 저장한 뒤 다시 넣어 주세요.
설정을 바꾸면 이전 결과가 사라집니다. 범위를 고쳤는데 예전 범위로 만들어진 파일이 저장 버튼 뒤에 남아 있으면 다른 문서를 받게 됩니다.
근거
- ISO 32000 — Portable Document Format (PDF Association)PDF 표준. 쪽의 크기(`MediaBox`)와 회전(`Rotate`)이 어떻게 정의되는지가 여기 있다 — 페이지 타일의 비율이 실제 문서와 같아지는 근거다
- pdf-lib — Create and modify PDF documents in any JavaScript environment이 페이지가 브라우저에서 실행하는 PDF 라이브러리(MIT). 순수 자바스크립트라 네트워크 요청이 없다
- fflate — High performance (de)compression in an 8kB package결과가 여러 개일 때 ZIP 으로 묶는 데 쓴다(MIT). 동기 API 를 쓰는 이유는 비동기 API 가 Blob URL 로 워커를 띄우는데 이 사이트의 보안 정책이 그것을 막기 때문이다