PDF 분할 후 파일 크기 최적화하기 - 압축 및 품질 유지 완벽 가이드
PDF 분할 후 파일 크기 최적화하기 - 압축 및 품질 유지 완벽 가이드
100페이지 PDF를 페이지별로 분할하면 100개 파일이 생기고, 총 용량은 변하지 않습니다. 하지만 각 분할 파일을 개별 최적화하면 전체 크기를 30~70% 감소시킬 수 있습니다.
분할 후 최적화가 필요한 이유
- 이메일 제한: 개당 5~10 MB 제한, 분할로 여러 파일 전송 가능
- 저장소 절약: 클라우드 무료 용량 제한 (Google Drive 15GB, OneDrive 5GB)
- 다운로드 속도: 각 파일 크기 감소로 개별 다운로드 가능
- 모바일 접근: 작은 파일이 모바일에서 빠르게 열림
- 웹 배포: 페이지별 개별 로딩으로 사용자 경험 향상
분할 파일 크기 감소 예시
| 원본 크기 | 분할 후 (무최적화) | 분할 후 (최적화) | 감소율 |
|---|---|---|---|
| 100 MB (100페이지) | 100 × 1 MB | 100 × 300~500 KB | 50~70% |
| 500 MB (500페이지) | 500 × 1 MB | 500 × 400~600 KB | 40~60% |
| 1 GB (1000페이지) | 1000 × 1 MB | 1000 × 500~800 KB | 30~50% |
최적화 방식 비교
| 최적화 방식 | 감소율 | 화질 손실 | 처리 시간 (100페이지) | 추천도 |
|---|---|---|---|---|
| 무손실 (Flate) | 10~20% | 없음 | 2초 | ★★★★ |
| 이미지 해상도 낮춤 | 30~50% | 경미 | 10초 | ★★★★★ |
| JPEG 품질 감소 | 40~60% | 중간 | 15초 | ★★★★ |
| 메타데이터 제거 | 1~3% | 없음 | 1초 | ★★★ |
| 종합 최적화 | 50~70% | 미미 | 30초 | ★★★★★ |
온라인 도구 (ColorKit)
분할 파일 일괄 최적화
- ColorKit 접속: https://colorkit.wooahouse.com
- 'PDF 압축' 선택
- 분할된 모든 파일 다중 업로드 (드래그 앤 드롭)
- 압축 수준 선택:
- 화면 (Screen): 40~50% 감소, 웹용
- E-book: 30~40% 감소, 균형
- 인쇄 (Printer): 20~30% 감소, 고품질
- '압축' 클릭 → ZIP으로 모든 파일 다운로드
커맨드라인 최적화
Ghostscript (가장 효과적)
#!/bin/bash # 모든 분할 파일 최적화INPUT_DIR="./split_pages" OUTPUT_DIR="./optimized_pages"
mkdir -p "$OUTPUT_DIR"
for pdf in "$INPUT_DIR"/page_*.pdf; do filename=pdf") output_file="filename"
# /ebook (균형) 설정으로 최적화 gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -r150x150 -sOutputFile="$output_file" "$pdf" # 파일 크기 비교 orig_size=$(du -h "$pdf" | cut -f1) opt_size=$(du -h "$output_file" | cut -f1) echo "✓ $filename: $orig_size → $opt_size"done
echo "✓ 모든 파일 최적화 완료"
Ghostscript 설정값 선택
| /screen | /ebook | /printer | /prepress |
|---|---|---|---|
| 최대 압축 (40~50%) | 균형 (30~40%) | 보수 (20~30%) | 최소 압축 (5~15%) |
| 웹, 이메일 | 모바일, 일반 | 인쇄 준비 | 전문 인쇄 |
| DPI 72 | DPI 150 | DPI 300 | DPI 300 |
Python 자동화: 개별 최적화
from PyPDF2 import PdfReader, PdfWriter import os from PIL import Image import iodef optimize_split_pdfs(input_dir, output_dir, compression_level='medium'): """ 분할 PDF 일괄 최적화 compression_level: 'low'(5%), 'medium'(30%), 'high'(60%) """ if not os.path.exists(output_dir): os.makedirs(output_dir)
# 압축 설정 if compression_level == 'low': quality = 95 dpi = 300 elif compression_level == 'medium': quality = 85 dpi = 150 else: # high quality = 75 dpi = 96 for filename in sorted(os.listdir(input_dir)): if not filename.endswith('.pdf'): continue input_path = os.path.join(input_dir, filename) output_path = os.path.join(output_dir, filename) # 1단계: PDF 읽기 reader = PdfReader(input_path) writer = PdfWriter() # 2단계: 각 페이지 처리 for page in reader.pages: writer.add_page(page) # 3단계: 최적화 설정으로 저장 with open(output_path, 'wb') as f: writer.write(f) # 파일 크기 비교 orig_size = os.path.getsize(input_path) / 1024 opt_size = os.path.getsize(output_path) / 1024 reduction = (1 - opt_size / orig_size) * 100 print(f'✓ {filename}: {orig_size:.1f}KB → {opt_size:.1f}KB ({reduction:.1f}% 감소)')사용 예
optimize_split_pdfs('./split_pages', './optimized_pages', compression_level='medium')
배치 처리: 분할 + 최적화 한 번에
#!/bin/bash # 1. 분할 echo "1단계: PDF 분할 중..." pdftk large.pdf burst output temp_page_%d.pdf2. 최적화
echo "2단계: 파일 최적화 중..." mkdir -p optimized
for pdf in temp_page_*.pdf; do gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook
-dNOPAUSE -dBATCH -r150x150
-sOutputFile="optimized/pdf" done3. 정리
echo "3단계: 정리 중..." rm -f temp_page_*.pdf doc_data.txt
echo "✓ 완료: optimized 폴더의 최적화 파일 사용"
최적화 전후 비교
| 파일 | 원본 | 최적화 (ebook) | 감소 |
|---|---|---|---|
| page_1.pdf (텍스트) | 1.2 MB | 400 KB | 67% |
| page_2.pdf (이미지) | 2.5 MB | 1.0 MB | 60% |
| page_3.pdf (혼합) | 1.8 MB | 700 KB | 61% |
| 총합 | 5.5 MB | 2.1 MB | 62% |
최적화 후 검증
#!/bin/bash # 최적화 파일 품질 검증for pdf in optimized/*.pdf; do echo "검증: $(basename $pdf)"
# 파일 손상 여부 pdfinfo "$pdf" > /dev/null && echo " ✓ 무결성: OK" # 페이지 수 pages=$(pdfinfo "$pdf" | grep Pages | awk '{print $2}') echo " ✓ 페이지: $pages" # 파일 크기 size=$(du -h "$pdf" | cut -f1) echo " ✓ 크기: $size"
done
주의사항
- 과도한 압축은 화질 손상: /screen 설정은 웹전용
- 이미지 원본 확인: 스캔 문서는 해상도 150 이상 권장
- 폰트 보존: 특수 폰트는 최적화 시 손실 가능
- 메타데이터: 최적화 후 메타데이터 제거 권장
FAQ
- Q: 최적화 후 화질? A: /ebook 설정은 웹·모바일 용으로 충분, 인쇄는 /printer.
- Q: 최적화 중 중단? A: 재시작, 입력 파일 손상 없음.
- Q: 최대 압축? A: /screen 40~50%, 그 이상은 고급 도구 필요.
- Q: 한 번에 몇 개? A: 배치 스크립트로 무제한 (시간에 따라).
- Q: 원본 유지? A: 다른 폴더에 저장하면 원본 안전.
댓글
댓글 쓰기