이 압축기는 완전히 다른 두 가지 전략을 파일에 모두 시도한 뒤 이긴 쪽을 돌려줍니다. 첫째는 무손실 구조 재저장입니다. pdf-lib가 문서를 다시 열어 오브젝트 스트림을 켜고 다시 쓰면서 내부 객체를 중복 제거하고 파일 구조를 더 촘촘하게 다시 묶습니다. 래스터화가 전혀 없으므로 텍스트는 계속 선택되고, 링크는 계속 눌리며, 벡터 그래픽은 그대로 선명합니다.
둘째는 래스터화입니다. 모든 페이지를 축소된 배율로 캔버스에 렌더링해 JPEG로 재인코딩한 뒤 새 PDF로 다시 조립합니다. 선택 가능한 텍스트는 사라지지만, 이미 PDF 껍데기 안에 든 이미지일 뿐인 스캔 문서에는 극적으로 효과적입니다.
두 결과의 용량을 비교해 더 작은 쪽을 내려받게 됩니다. 어느 쪽도 원본을 이기지 못하면, 이미 최소 크기라고 알려주고 더 나빠진 버전 대신 손대지 않은 원본을 돌려줍니다.
두 압축 경로 모두 브라우저 안에서 실행됩니다. 계약서나 여권 스캔이 압축 서비스 서버의 대기열에 사본으로 남는 일 없이 자기 기기에서 처리됩니다.
| 수준 | 렌더링 배율 | JPEG 품질 | 적합한 경우 |
|---|---|---|---|
| 기본 | 1.5배 | 0.72 | 아직 꼼꼼히 읽어야 하는 문서 |
| 중간 | 1.15배 | 0.58 | 일반적인 선택. 메일 첨부, 업로드 |
| 강함 | 0.85배 | 0.42 | 용량 제한이 빡빡하고 읽을 수만 있으면 되는 경우 |
이 수치는 래스터화 경로에만 적용됩니다. 무손실 재저장은 내줄 화질이 없으므로 수준 설정을 아예 무시합니다. 글자 위주 보고서가 기본에서도 강함에서도 비슷하게 줄어드는 이유가 이것입니다.
글자 위주 PDF는 이미 극도로 압축된 상태입니다. 단어가 폰트 참조와 좌표로, 문자당 몇 바이트로 저장되어 있어 짜낼 여분이 거의 없습니다. 그런 페이지를 래스터화하면 오히려 더 커지는데, 활자 페이지가 활자를 찍은 대형 사진으로 바뀌기 때문입니다. 이 도구는 그 상황을 감지해 무손실 재저장으로 되돌아가고, 그래서 텍스트 문서는 5% 정도만 줄어들 수 있습니다.
스캔 문서는 정반대입니다. 각 페이지가 대개 300 DPI로 넉넉한 화질 설정에 저장된 전체 해상도 사진입니다. 더 낮은 배율과 품질로 래스터화하면 판독성 손실 없이 70~90%가 줄어드는 일이 흔합니다.
어느 경로가 이겼느냐에 따라 다릅니다. 무손실 재저장이 더 작은 파일을 만들면(글자 위주 문서에서 흔한 결과) 텍스트·링크·벡터 그래픽이 온전히 보존됩니다. 스캔 문서처럼 래스터화가 이기면 페이지가 이미지가 되어 텍스트 선택이 되지 않습니다.
텍스트 기반 PDF는 이미 고도로 압축되어 있어 제거할 여분이 적습니다. 큰 절감은 사진이나 스캔 페이지가 들어 있는 문서에서 나옵니다. 전혀 줄일 수 없었다면 열화된 사본 대신 손대지 않은 원본을 돌려줍니다.
거의 모든 경우 중간입니다. 문서를 꼼꼼히 읽거나 인쇄해야 하면 기본을 고르고, 업로드 용량 제한이 빡빡하고 판독만 되면 될 때만 강함을 쓰세요.
가능하지만, 여러 파일은 개별로 반환되지 않고 압축된 PDF 하나로 합쳐진다는 점에 유의하세요. 개별로 압축하려면 한 번에 하나씩 처리하세요.
비밀번호가 걸린 PDF는 애초에 열 수 없어 오류가 표시됩니다. 전자 서명은 파일이 다시 쓰이므로 유지되지 않습니다. 서명된 문서는 그대로 두는 편이 좋습니다.
아니요. PDF.js와 pdf-lib 모두 이 페이지 안에서 JavaScript로 실행되므로 전 과정이 브라우저에서 이뤄지고 문서는 기기를 벗어나지 않습니다.