PDF의 일부 페이지만 보내기: 페이지 추출, 페이지 삭제, 그리고 파일에 남는 것
PDF의 일부 페이지만 보내려면 페이지 추출에 남길 페이지를, 페이지 삭제에 뺄 페이지를 적으세요. 페이지 본문은 제거되지만 책갈피 제목과 문서 제목은 파일에 남을 수 있습니다.
페이지 추출은 12페이지짜리 PDF에서 1,3,5-8처럼 적은 페이지만 담은 새 PDF를 만듭니다. 페이지 삭제는 반대로 뺄 페이지를 적습니다. 둘 다 원본 페이지를 다시 그리지 않고 복사하므로 텍스트는 선택할 수 있고 파일이 흐려지지도 않습니다. 뺀 페이지가 민감한 내용이었다면 한 가지 한계가 중요합니다. 페이지 내용은 사라지지만 책갈피 제목과 문서 제목은 새 파일에 남을 수 있습니다.
이미 아는 쪽에 맞춰 도구를 고르세요
남길 페이지를 안다면 페이지 추출을, 뺄 페이지를 안다면 페이지 삭제를 쓰세요. 차이는 결과의 순서에서 드러납니다.
- 페이지 추출은 입력한 순서대로 페이지를 씁니다.
5,1,3을 입력하면 5페이지, 1페이지, 3페이지 순입니다. 두 번 적은 페이지는 한 번만 나옵니다. - 페이지 삭제는 남은 페이지를 원래 순서대로 둡니다.
페이지 번호는 뷰어에 표시되는 번호이며 1부터 시작합니다. 두 도구에서 같은 목록 문법이 통합니다. 단일 페이지(4), 범위(5-8), 쉼표 목록(1,3,5-8), all이라는 단어, 그리고 2n+1 같은 식입니다. 식에서 n은 1부터 세므로 2n+1은 3, 5, 7 페이지 등을 뜻하고 1페이지는 포함되지 않습니다. 1페이지도 원하면 1,2n+1이라고 입력하세요.
실제 예: 임대인에게 임대차 계약서 일부 보내기
입력은 12페이지짜리 Letter 크기 임대차 계약서입니다. 각 페이지에 자기 번호가 텍스트로 들어 있어("Lease agreement - page 3 of 12") 결과를 확인하기 쉽습니다. 임대인에게 필요한 것은 부록을 뺀 1, 3, 5~8페이지입니다. 브라우저에서는 파일을 올리고 1,3,5-8을 입력한 뒤 결과를 내려받습니다. 스크립트에서는 같은 작업이 다음과 같습니다.
curl -s -o pages.pdf \
-F [email protected] \
-F pageNumbers="1,3,5-8" \
https://pdf123.xyz/api/v1/general/rearrange-pages
웹사이트 도구는 목록을 이 엔드포인트로 보내고 customMode는 비워 둡니다. "내가 적은 목록을 내가 적은 순서대로 쓴다"는 뜻입니다. 아래는 2026-10-04에 로컬 서버를 대상으로 생성한 테스트 파일로 한 번 실행한 결과이며, 수치는 출력 파일의 페이지 수와 거기서 뽑은 페이지 라벨입니다.
| 도구에 넣은 값 | 도구 | 결과 페이지 |
|---|---|---|
1,3,5-8 |
페이지 추출 | 6페이지: 1, 3, 5, 6, 7, 8 |
5,1,3,1 |
페이지 추출 | 3페이지: 5, 1, 3 |
2n+1 |
페이지 추출 | 5페이지: 3, 5, 7, 9, 11 |
10-15 |
페이지 추출 | 3페이지: 10, 11, 12 |
2-4,9 |
페이지 삭제 | 8페이지: 1, 5, 6, 7, 8, 10, 11, 12 |
| 빈 값(API 전용, 웹 폼은 값을 요구함) | 페이지 삭제 | 12페이지 전체, 원본 파일 그대로 |
내려받은 파일은 올린 파일의 이름을 그대로 쓰므로 보내기 전에 이름을 바꾸세요. 그러지 않으면 디스크에 lease.pdf가 두 개 생깁니다.
실패하는 입력 세 가지와 오류 메시지
없는 페이지는 조용히 건너뛰지 않고 오류가 납니다. 12페이지 파일에서 13페이지를 요청하면 400(page_out_of_range)과 함께 Page 13 does not exist; the document has 12 pages.가 돌아옵니다. 0페이지도 같은 방식으로 거부됩니다. abc처럼 페이지 목록이 아닌 텍스트는 400과 invalid_page_selection이 돌아오고, 1,3,5-8이나 all 같은 값을 쓰라는 안내가 붙습니다. 이 부분은 두 도구가 똑같이 동작하므로 오타 때문에 그럴듯하지만 틀린 파일이 만들어지는 일은 없습니다.
덜 뻔한 경우가 둘 있습니다. 문서 안에서 시작해 문서 밖에서 끝나는 범위는 잘립니다. 12페이지 파일에 10-15를 넣으면 10~12페이지가 나왔습니다. 그리고 페이지 삭제는 전부 지우는 것을 거부합니다. 1-12는 400(would remove every page, which leaves nothing to return)을 반환합니다. 페이지가 없는 PDF는 존재할 수 없기 때문입니다.
비밀번호로 보호된 파일은 웹 페이지에서 비밀번호가 필요합니다. API를 직접 호출한다면 먼저 비밀번호 해제를 실행하세요.
남는 것: 페이지를 지우는 것은 가림 처리가 아닙니다
추출은 페이지 객체를 버리고, 그와 함께 적지 않은 페이지의 텍스트와 이미지도 버립니다. 테스트에서 추출한 파일에는 뺀 페이지의 텍스트가 없었습니다. 하지만 그 페이지를 언급하는 모든 것이 사라진 것은 아닙니다. 제 테스트 파일에서 남긴 페이지의 바이트에도 뺀 텍스트의 흔적은 없었습니다.
이 확인을 위해 계약서에는 문서 제목("Lease - Unit 4B, J. Rivera")과 책갈피 두 개를 넣었습니다. 1페이지의 "Signature page"와 12페이지의 "Tenant SSN appendix"입니다. 페이지 추출로 1, 2페이지만 남기자 파일은 2페이지가 되었는데, 뷰어의 책갈피 창에는 두 제목이 여전히 나타났습니다. 두 번째 책갈피는 이제 아무 데도 가리키지 않았습니다. 제목과 작성자도 문서 속성에 그대로 있었습니다. 12페이지를 페이지 삭제로 지웠을 때도 같은 책갈피 두 개가 남았습니다.
메타데이터 옵션을 켠 PDF 정리는 문서 정보와 XMP 메타데이터를 지웠고, 실행 후 문서 속성은 비어 있었습니다. 웹 폼은 이 옵션을 기본으로 켜 두지만, API 호출은 removeMetadata=true를 직접 보내야 합니다. PDF 정리는 책갈피를 건드리지 않습니다. 두 제목이 그대로 있었습니다. 책갈피를 고치는 웹 도구는 없습니다. API 작업 general/edit-table-of-contents가 JSON 목록으로 책갈피를 교체하는데, 항목이 최소 하나는 있어야 해서 목록을 그냥 비울 수는 없습니다. 테스트에서는 옛 제목 텍스트가 참조되지 않는 객체로 파일 안에 남기도 했습니다. 뷰어에는 보이지 않지만 원시 바이트에서는 읽을 수 있습니다. 책갈피 제목을 숨기는 용도로는 믿지 마세요.
그러니 뺀 페이지가 민감했다면 결과 파일을 열어 책갈피 창과 문서 속성을 보고, 거기서 내용이 새어 나오지 않을 때만 보내세요. 책갈피 제목 자체가 비밀이라면 이 방법으로는 지울 수 없습니다. 남긴 페이지에 보이는 단어를 없애야 한다면 텍스트 가리기가 할 일이며, 공유 전에 알아 둘 것에서 다룹니다.
비용과 한계
- 두 도구 모두 한 번에 PDF 하나를 처리하고 PDF 하나를 만듭니다. 파일을 여러 부분으로 자르는 것은 PDF 분할의 일입니다.
- 결과는 새 파일이고 원본은 그대로입니다. 새 파일은 뺀 페이지를 되돌려 주지 못하므로 원본을 보관하세요.
- 아예 열리지 않는 파일은 먼저 PDF 복구가 필요합니다. 파일이 열리지 않을 때를 보세요.