이미지 PDF 용량을 줄이면 작은 글자는 어떻게 될까?
합성 서류 두 장을 A4·같은 여백으로 만든 PDF 4개를 비교했습니다. JPG 변환과 해상도 축소의 용량·가독성 차이를 확인하세요.
직접 만든 합성 자료 · Node 기준 실험 · 실제 다운로드 결과 공개
이 서류에서는 원본 PNG를 쓰는 편이 나았습니다
원본 PNG 두 장을 넣은 PDF는 54,206바이트였습니다. 먼저 600픽셀 JPG로 줄여 만든 PDF는 133,260바이트로 오히려 더 컸습니다. 300픽셀까지 줄이면 48,870바이트가 됐지만 작은 글자를 표현할 픽셀이 크게 줄었습니다. 문서 이미지라면 ‘JPG로 변환하고 줄이기’가 첫 선택일 필요는 없습니다.
같은 서류 두 장, 같은 용지와 여백
1200 × 1697픽셀의 합성 문서 두 장을 코드로 만들었습니다. 5 × 7 격자로 직접 그린 영문 글자, 숫자, 표의 가는 선을 넣었으며 실제 영수증이나 개인정보가 아닙니다. 작은 글자는 원본에서 높이 14픽셀입니다. 문서 촬영의 그림자·기울기·흐림이나 일반 글꼴 렌더링은 재현하지 않습니다.
PDF는 모두 2페이지이며 A4 595.28 × 841.89포인트, 사방 최소 24포인트(약 8.5mm) 여백, 비율 유지·가운데 맞춤을 적용했습니다. 가로·세로 비율 차이로 실제 여백 한 방향은 더 넓습니다. 순서·용지·맞춤을 고정하고 이미지 인코딩과 가로 픽셀 수만 바꿨습니다.
| 이미지 조건 | 한 장의 픽셀 | 두 이미지 합계 | PDF 다운로드 |
|---|---|---|---|
| PNG 원본 | 1200 × 1697 | 35,818 B | 54,206 B |
| JPG · 82 | 1200 × 1697 | 307,862 B | 309,323 B |
| JPG · 82 | 600 × 849 | 131,810 B | 133,260 B |
| JPG · 82 | 300 × 424 | 47,422 B | 48,870 B |
이미지 합계와 PDF 크기는 같지 않습니다. PDF에는 페이지·객체 정보가 추가되고, PNG는 단순 파일 첨부가 아니라 디코딩한 픽셀을 PDF 내부 스트림으로 저장합니다. 따라서 PNG 원본 바이트의 합만으로 PDF 크기를 예상하면 맞지 않을 수 있습니다.
파일 크기를 줄이는 동안 작은 글자에 생기는 일
아래는 첫 문서의 같은 작은 글자 영역을 같은 화면 폭으로 확대한 비교입니다. PDF 스크린샷이 아니라 실제 PDF에 넣은 이미지의 픽셀입니다. 원본 14픽셀 높이의 글자는 600픽셀 버전에서 약 7픽셀, 300픽셀 버전에서는 약 3~4픽셀 높이만 남습니다. 선이 합쳐지는지, 숫자가 구분되는지 원본과 대조하세요.




300픽셀 PDF가 PNG PDF보다 줄어든 크기는 5,336바이트, 약 9.8%에 불과했습니다. 이 경우 작은 글자의 정보를 버리는 대가에 비해 절감량이 적습니다. 반면 사진이 들어간 문서라면 PNG가 훨씬 커질 수 있습니다. 이 두 장의 결과를 모든 문서의 최적 설정으로 일반화하지 마세요.
제출 전에 확인할 순서
- 먼저 원본 이미지로 PDF를 만들어 실제 크기를 확인하세요. 이미 제출 제한 안에 들어오면 무조건 낮출 필요가 없습니다.
- 제한을 넘으면 대표 한 페이지로 형식이나 해상도 한 가지씩 바꿔 비교하세요. 페이지 수, A4 여부, 여백을 같게 유지해야 무엇이 영향을 줬는지 알 수 있습니다.
- 저장한 PDF를 다시 열어 모든 페이지의 잘림·순서·가장 작은 글자·숫자를 확인하세요. 인쇄 제출이면 실제 크기로 한 페이지를 인쇄해 보는 편이 확실합니다. 용량 숫자만으로 가독성을 판정하지 마세요.
- 이 방식은 이미지를 넣는 PDF입니다. 글자 선택·검색·스크린리더용 텍스트나 OCR 결과가 필요한 제출에는 적합하지 않을 수 있습니다. 원본 문서에서 텍스트 PDF로 내보내는 방법을 우선 확인하세요.
직접 확인하고 재현하는 방법
2026년 9월 27일 JUUD Apps가 개인정보가 없는 입력을 코드로 직접 만들었습니다. 숫자는 다운로드 파일의 실제 바이트 수입니다. 1 kB를 1,000바이트로 표시하는 운영체제와 1 KiB를 1,024바이트로 표시하는 운영체제의 차이를 피하기 위해 바이트를 그대로 적었습니다.
측정 환경은 Node 24.18.0, sharp 0.35.3 / libvips 8.18.3, pdf-lib 1.17.1입니다. PNG 압축 단계 9, JPG 품질 82·색차 샘플링 4:2:0, 축소 필터 Lanczos3를 사용했습니다. 도구의 A4·가운데 맞춤·24포인트 여백과 같은 배치 조건을 사용했지만 인코더는 Node 기반입니다. 사이트 도구를 특정 브라우저에서 실행해 얻은 성능·호환성 시험 결과가 아니며, 브라우저의 품질 82가 이 결과와 같은 바이트를 만든다는 뜻도 아닙니다.
- 원본과 결과를 내려받아 파일 속성과 실제 표시 내용을 확인합니다. 확대 이미지는 원본 일부를 크게 보여주는 것이며 새 디테일을 복원하지 않습니다.
- 새 폴더에 재현 코드를 저장하고 Node 22 이상에서 아래 두 명령을 실행합니다. 인터넷 연결은 라이브러리 설치에만 필요합니다. 실행은 개인 파일이나 외부 자료를 읽지 않습니다.
- 새 results 폴더의 measurements.json과 공개 자료를 비교합니다. 동일 인코더·라이브러리 버전을 사용하세요. 플랫폼이나 종속 라이브러리가 달라지면 파일 바이트가 달라질 수 있습니다. 공개된 SHA-256은 이 게시물에 사용한 파일의 동일성을 확인하는 값입니다.
npm install sharp@0.35.3 pdf-lib@1.17.1
node reproduce.mjs ./results이 샘플들은 결과를 설명하기 위해 만든 자료입니다. 실제 휴대폰 사진, 스캐너 문서, 손글씨, 한글 글꼴, HDR 또는 투명 이미지의 품질을 대표하지 않습니다. 사용자 파일을 시험하지 않았으므로 특정 용량 제한 충족이나 모든 글자의 판독을 보장하지 않습니다.
오류를 발견하면 파일 이름, 비교한 수치와 실행 환경을 알려 주세요. 개인 서류는 첨부하지 마세요. 정정 문의

