PDF 압축이 파일 용량을 줄이는 원리
이 도구가 실제로 하는 일
PDF 용량은 대부분 텍스트나 벡터 그래픽이 아니라 안에 박힌 사진과 스캔 이미지에서 나옵니다. 이 도구는 바로 그 지점을 겨냥합니다. pdf-lib로 문서를 훑어 임베드된 JPEG 이미지를 찾아내고, 각각을 canvas에서 낮은 품질로 다시 인코딩하며, 필요 이상으로 큰 이미지는 해상도까지 줄입니다. 텍스트, 폰트, 벡터 선은 그대로 두므로 압축된 페이지도 또렷하게 읽히고 인쇄됩니다.
압축 강도는 세 가지 프리셋으로 결정됩니다. 고품질은 JPEG 품질 약 82%로 다시 인코딩하고 긴 변을 2200px 안팎으로 제한합니다. 균형은 62%·1600px까지 낮추고, 최소 크기는 45%·1100px로 가장 작은 결과를 만듭니다. 저장할 때는 오브젝트 스트림으로 파일을 다시 묶어 구조상의 군더더기도 덜어냅니다.
이럴 때 쓰세요
메일에 싣기엔 너무 무겁거나, 용량 제한이 있는 포털에 올려야 하거나, 웹 양식에 첨부해야 할 때 씁니다. 효과가 가장 큰 쪽은 스캔 문서와 이미지가 많은 브로슈어인데, 그 부피가 곧 다시 압축되는 래스터 데이터이기 때문입니다. 전체 해상도 스크린샷을 붙여 PDF로 내보낸 슬라이드도 대표적인 대상입니다.
200KB 업로드 상한처럼 엄격한 한도 아래로 반드시 맞춰야 한다면 목표 크기 모드로 전환하세요. 고정 프리셋 대신 품질을 이진 탐색으로 조절해, 입력한 숫자를 여전히 밑도는 선에서 가장 높은 화질을 골라냅니다.
구체적인 예시
12MB짜리 스캔 계약서를 예로 들어 보겠습니다. 균형 모드에서는 임베드된 JPEG를 하나씩 디코딩해 최대 1600px로 canvas에 다시 그린 뒤 62% 품질로 재인코딩합니다. 이미지는 크게 줄어드는 반면 겹쳐진 텍스트는 그대로 읽히고, 결과는 대개 2~4MB 안에 들어옵니다. 메타데이터 제거를 켜면 같은 처리 과정에서 작성자, 제목 등 문서 속성도 결과물에서 함께 지워집니다.
유의점과 예외
모든 PDF가 줄어드는 것은 아닙니다. 텍스트만 있는 파일은 다시 압축할 이미지가 없어 용량이 거의 변하지 않는데, 이는 실패가 아니라 예상된 결과입니다. PNG 등 JPEG가 아닌 형식으로 저장된 이미지는 그대로 두고, CMYK JPEG는 canvas가 색을 틀어지게 재현하기 때문에 일부러 건너뜁니다. 비밀번호가 걸린 PDF는 먼저 잠금을 풀어야 하며, 50MB 상한은 기기에서 무리 없이 디코딩·재인코딩할 수 있는 범위를 뜻합니다. 이미 잘 최적화된 파일이라면 압축본이 원본과 비슷한 크기로 나올 수 있습니다.