PDF 용량 줄이기
이미지 다운샘플·재압축과 중복 리소스 정리로 PDF 용량 줄이기
파일은 이 브라우저에서만 처리됩니다. 서버에 업로드하지 않습니다.
이미지 다운샘플·재압축과 중복 리소스 정리로 PDF 용량 줄이기
암호가 걸린 PDF입니다.
다른 도구로 이어서 편집
처리하고 있습니다…
모든 처리는 이 브라우저 안에서만 이루어집니다. 파일이 서버로 전송되지 않습니다.
다운로드할 파일이 준비됐습니다
이 결과로 이어서 편집
페이지 미리보기 열기
| 구성 | 처리 전 | 처리 후 | 변화 |
|---|
설정을 바꾸면 이전 결과는 숨겨집니다. 다시 만들어 최신 설정을 저장하세요.
암호화된 PDF는 먼저 암호를 해제하세요. 파일 전체를 새로 쓰므로 기존 전자서명은 무효가 됩니다. 원본을 보관하고 결과를 확인하세요.
처리 중…
0.0
멈춘 것이 아닙니다. 계산이 끝나면 결과가 표시됩니다.
PDF 용량 줄이기 소개
이 도구는 PDF를 다시 그리는 것이 아니라 파일 안의 객체를 하나씩 열어 더 작은 형태로 바꿔 끼웁니다. PDF 구조는 pdf-lib로 읽고 쓰며, Flate 압축은 fflate, JPEG 해독·재인코딩은 브라우저 캔버스가 맡습니다. 별도 WASM 엔진(Ghostscript 등)은 쓰지 않기 때문에 글꼴 서브셋이나 JBIG2 재압축처럼 전용 엔진이 필요한 작업은 하지 않습니다.
가장 큰 절감은 이미지에서 나옵니다. 도구는 각 페이지의 콘텐츠 스트림을 따라가며 좌표 변환 행렬을 계산해, 이미지가 실제로 몇 인치 크기로 놓였는지로 배치 DPI를 구합니다. 목표 DPI의 1.15배를 넘는 이미지만 줄이고, 새로 만든 데이터가 원래 스트림보다 작을 때만 교체합니다. 전체 결과가 원본보다 크면 원본을 그대로 돌려줍니다.
실행 순서와 각 단계가 줄이는 것
처리는 다섯 단계입니다. 단계마다 줄일 수 있는 대상이 다르므로, 분석 화면의 이미지·글꼴·기타 비율을 보면 어느 단계에서 효과가 날지 미리 가늠할 수 있습니다.
- 부가 데이터 제거: XMP 메타데이터, 페이지 썸네일, 편집 프로그램 전용 /PieceInfo. 일러스트레이터에서 저장한 PDF는 /PieceInfo에 원본 편집 데이터가 통째로 들어 있어 이것만으로 절반 이상 줄기도 합니다.
- 이미지: 목표 DPI를 넘으면 픽셀 평균(박스 필터)으로 축소합니다. 컬러 JPEG은 해독 후 다시 JPEG로, 무손실(Flate·무압축) 8비트 회색·RGB 이미지는 PNG 예측기(Predictor 15)를 붙여 레벨 9로 다시 압축합니다. 권장·강하게에서는 무손실 컬러 이미지를 JPEG로도 만들어 보고 절반 이하일 때만 JPEG를 택합니다. 회색조는 회색조로 남깁니다. 브라우저의 JPEG 인코더는 컬러(RGB) JPEG만 만들기 때문에, 회색조 JPEG은 1채널 무손실(Flate)로 바꿔 보고 원본보다 작을 때만 바꾸며, 무손실 회색조 이미지는 JPEG로 바꾸지 않습니다.
- 나머지 스트림: 압축되지 않았거나 Flate만 쓴 콘텐츠·글꼴 스트림을 레벨 9로 다시 압축합니다.
- 중복 병합: 바이트가 같은 스트림과 같은 Font·FontDescriptor·ExtGState 사전을 하나로 합칩니다. 여러 PDF를 합친 파일에서 같은 로고와 글꼴이 파일 수만큼 들어 있는 경우에 효과가 큽니다.
- 정리와 저장: 어디서도 참조하지 않는 객체를 지우고, 객체 스트림(PDF 1.5의 ObjStm)으로 작은 객체들을 묶어 한 번에 압축해 저장합니다.
배치 DPI가 픽셀 수보다 중요한 이유
같은 4000×3000 사진이라도 A4 전체에 깔리면 약 340 DPI이고, 명함 크기 칸에 들어가면 1000 DPI가 넘습니다. 인쇄에도 300 DPI면 충분하므로 뒤쪽은 픽셀 대부분이 버려지는 셈입니다. 그래서 이 도구는 이미지 크기가 아니라 배치 크기로 판단하고, 같은 이미지가 여러 곳에 쓰이면 가장 작은 DPI(가장 크게 놓인 곳)를 기준으로 삼아 확대된 자리에서 흐려지지 않게 합니다.
배치를 찾지 못한 이미지(페이지에서 실제로 그리지 않는 이미지)는 DPI를 알 수 없어 JPEG 재압축 대상에서 빠집니다. 투명도를 담은 소프트 마스크는 부모 이미지와 같은 비율로 줄여 가장자리가 어긋나지 않게 하고, JPEG로는 바꾸지 않습니다.
거의 줄지 않는 PDF
용량이 안 주는 데는 대부분 구조적인 이유가 있습니다. 결과 표에서 어느 항목이 그대로인지 보면 원인을 좁힐 수 있습니다.
- 이미 적정 해상도의 JPEG: 150 DPI 근처로 저장된 사진을 품질 75로 다시 압축해도 몇 %밖에 안 줄고, 원본의 90%를 넘으면 도구가 교체하지 않습니다. JPEG를 반복 저장하면 화질만 잃습니다.
- 글꼴 비중이 큰 문서: 한글·일본어 글꼴을 서브셋 없이 통째로 내장하면 글꼴 하나가 수 MB입니다. 이 도구는 글꼴을 서브셋하지 않으므로 이 부분은 원본 프로그램에서 「사용한 글자만 포함」으로 다시 내보내는 편이 낫습니다.
- 벡터가 많은 도면·지도: 선 수십만 개는 콘텐츠 스트림 크기로 나타나며, 이미 Flate로 압축돼 있으면 레벨 9로 다시 눌러도 몇 % 수준입니다.
- 처리하지 않는 이미지 형식: JPEG 2000(JPX), JBIG2, CCITT 팩스, CMYK·16비트 이미지, 색상표(Indexed) 이미지는 그대로 둡니다. 스캐너가 JBIG2로 저장한 흑백 스캔은 이미 매우 작아서 더 줄일 여지도 거의 없습니다.
다운샘플이 망가뜨리기 쉬운 것
스캔 문서는 글자도 이미지입니다. 300 DPI로 스캔한 계약서를 강하게(96 DPI)로 줄이면 9pt 글씨의 획이 뭉개지고, 서류 제출처의 자동 판독이 실패할 수 있습니다. 회색조 스캔은 JPEG로 다시 저장될 때 브라우저 인코더 특성상 RGB JPEG가 되므로, 흑백 인쇄 규정이 있는 제출물은 결과를 인쇄 미리보기로 확인하세요.
파일을 새로 쓰기 때문에 전자서명은 무효가 됩니다. 서명된 PDF를 줄여야 한다면 서명 전 파일을 압축하고 그 뒤에 서명하는 순서가 맞습니다.
예시
휴대폰 사진을 A4에 꽉 채운 증빙 PDF
- 입력
4000×3000 사진을 A4(8.27×11.69인치) 폭에 맞춰 배치, 권장(150 DPI, 품질 75)- 결과
배치 DPI ≈ 342 → 1316×1754 수준으로 축소
가로 3000/8.27≈363, 세로 4000/11.69≈342 중 작은 값 342가 배치 DPI입니다. 342는 150×1.15=172.5를 넘으므로 150/342≈0.44배로 줄이고, 픽셀 수는 약 19%로 줄어듭니다. JPEG 크기는 대략 픽셀 수에 비례하므로 이미지가 원래의 5분의 1 안팎이 됩니다. 강하게(96 DPI)면 842×1123, 픽셀 약 8%입니다.
이미 가벼운 보고서
- 입력
워드에서 내보낸 30쪽 보고서 2.1MB, 분석: 글꼴 78%, 이미지 12%- 결과
몇 % 절감에 그치거나 원본 유지
이미지를 모두 없애도 12%밖에 줄지 않습니다. 글꼴이 서브셋 없이 내장된 경우이므로 워드의 글꼴 포함 옵션에서 「문서에 사용된 문자만 포함」을 켜고 다시 PDF로 저장하는 쪽이 효과가 큽니다.
150 DPI 목표에서 170 DPI 이미지
- 입력
배치 DPI 170인 사진, 권장- 결과
축소하지 않음(품질 75로 재압축만 시도)
170은 172.5 미만이라 축소 대상이 아닙니다. 조금 넘는 이미지를 줄여 봐야 절감은 작고 재샘플링 손실만 생기기 때문에 둔 여유입니다. 재압축 결과가 원본의 90% 이상이면 원래 JPEG가 유지됩니다.
사용 방법
- PDF를 넣고 이미지·글꼴·기타 비율과 목표 DPI를 넘는 이미지 수를 확인합니다.
- 약하게(220 DPI)·권장(150 DPI)·강하게(96 DPI) 중에서 고르거나 직접 DPI와 품질을 정합니다.
- 실행 후 항목별 용량 변화와 미리보기에서 사진·작은 글씨를 확대해 봅니다.
주요 용어
- 배치 DPI
- 이미지 픽셀 수를 페이지에 놓인 인치 크기로 나눈 값입니다. 파일 속 이미지 해상도 정보가 아니라 실제 표시 크기로 계산합니다.
- 객체 스트림(ObjStm)
- PDF 1.5에서 도입된 방식으로, 여러 작은 객체를 한 스트림에 모아 함께 압축합니다. 교차 참조도 스트림 형태로 저장됩니다.
- PNG 예측기
- 행마다 이웃 픽셀과의 차이를 기록해 Flate 압축이 잘 되게 하는 전처리입니다. PDF의 FlateDecode는 Predictor 10~15로 이를 지원합니다.
자주 묻는 질문
PDF 용량을 줄이면 글자도 흐려지나요?
텍스트로 된 글자는 벡터라 영향이 없습니다. 스캔 문서처럼 글자가 이미지 안에 있을 때만 해상도를 따라 흐려집니다.
같은 파일을 두 번 돌리면 더 줄어드나요?
같은 설정이라면 두 번째에는 거의 줄지 않습니다. 이미지가 이미 목표 DPI 이하라 축소되지 않고, 재압축은 원본보다 10% 이상 작을 때만 적용되기 때문입니다.
스캔한 흑백 문서가 잘 안 줄어요.
스캐너가 이미 CCITT나 JBIG2로 저장한 1비트 이미지는 이 도구가 건드리지 않습니다. 회색조·컬러로 스캔된 파일이라면 DPI를 낮추면 줄지만, 글자 판독성을 보며 조정하세요. 회색조 JPEG은 흑백을 유지하려고 무손실로만 다시 저장하므로, DPI를 낮추지 않으면 원본 그대로 남는 경우가 많습니다.
책갈피와 링크가 사라지나요?
페이지 구조, 책갈피, 링크, 양식 필드는 유지됩니다. 메타데이터 제거 시 XMP가 사라지므로 PDF/A 적합성 표시는 없어집니다.
관련 가이드
출처
- PDF Association — ISO 32000 (PDF) resources
- Adobe — Document management, Portable document format, Part 1: PDF 1.7 (ISO 32000-1:2008 copy)
- iText Knowledge Base — Which PDF filters are used to encode data?
- pdf-lib — PDFDocument.save (useObjectStreams)
- MDN — HTMLCanvasElement.toBlob()
기준일: