일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 티스토리챌린지
- 실시간 렌더링
- XAI
- 오블완
- 확산 모델
- AI 기술
- 자연어 처리
- 생성형AI
- 강화 학습
- tts
- ChatGPT
- 일론 머스크
- 우분투
- 오픈AI
- 감정 표현
- 딥러닝
- Stable Diffusion
- 이미지 생성
- 휴머노이드 로봇
- 강화학습
- 오픈소스
- 트랜스포머
- 메타
- LLM
- PYTHON
- 인공지능
- 멀티모달
- 다국어 지원
- OpenAI
- AI
- Today
- Total
AI 탐구노트
[우분투] PDF 파일 용량 압축하기 - GhostScrpt 이용 본문
AI 관련 논문 파일들 가운데 30~40MB를 훅 뛰어넘는 것들이 다수 있습니다. 용량이 크기도 하고, ChatGPT 등에 요약 요청을 할 때 용량이 크다고 문제가 발생할 수도 있어서 내용 상 누락은 없지만 파일 사이즈 자체는 줄일 수 있을 것 같아 그 방식을 찾아봤고 결과를 정리해 둡니다.
PDF 파일 크기 줄이기
PDF 파일의 크기를 줄이거나 압축하는 대표적인 방법은 이미지 리샘플링(해상도 낮추기), 불필요한 메타데이터 제거, 폰트 서브셋화(필요한 글자만 포함), 중복 객체 정리 등이 있습니다. 하지만 텍스트, 이미지, 표 등 원본 내용이 빠지지 않게 하려면, '이미지 품질 저하'와 '페이지 삭제' 등은 피하고, 최대한 안전한 최적화만 적용해야 합니다.
가장 많이 쓰이는 방식은 온라인 서비스로 PDF 압축 서비스를 이용하거나 로컬에서 Ghostscript 를 이용하는 것입니다. 이 가운데
Ghostscript를 사용하는 방법에 대해 정리해 봅니다. 참고로 Ghostscript는 PDF를 재생성하면서 최대한 압축하는 강력한 툴이며, 이를 이용하면 이미지 품질 옵션을 조절할 수 있고, 텍스트와 표 등은 모두 보존됩니다.
Ghostscript로 PDF 압축하는 방식
이미지는 quality를 낮추지 않고, 구조만 최적화하는 방식으로 진행합니다. 입력 파일과 출력 파일의 이름은 각각 input.pdf와 compressed.pdf 입니다. (참고로 Ghostscript는 우분투에 기본 설치되어 있습니다.)
1️⃣ 실행 커맨드
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=compressed.pdf input.pdf
gs 커맨드의 각 옵션은 다음과 같은 의미를 가지고 있습니다.
- -sDEVICE=pdfwrite : PDF 출력장치 사용
- -dCompatibilityLevel=1.4 : PDF 버전(1.4는 호환성이 좋고 용량도 적절)
- -dPDFSETTINGS=... : 압축 품질 설정 (아래 표 참고)
- /screen : 최저 품질, 최저 용량 (프레젠테이션용)
- /ebook : 전자책 등 적당한 품질
- /printer : 인쇄용, 높은 품질
- /prepress : 출판용, 최고 품질(용량 줄이되, 손실 최소화, 내용 손실 거의 없음)
- /default : 기본 설정
- -dNOPAUSE -dQUIET -dBATCH : 자동 실행 (대화없이)
- -sOutputFile=compressed.pdf : 저장할 파일명
2️⃣ 실행 커맨드 예시
1) 최소 용량으로 압축하는 경우 (품질 저하 발생)
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf input.pdf
2) 내용 손실 최소화하는 경우 (권장 방식)
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf input.pdf
3️⃣ 테스트 결과 (40MB 짜리 파일 이용)
1) 파일 사이즈 측면 - 1/4 수준
테스트는 '내용 손실 최소화(권장)' 방식으로 진행했습니다. 결과를 보면 용량은 1/4 수준으로 줄었음을 알 수 있습니다. 극적인 변화네요...
2) 이미지 품질 측면 - 크게 차이나지 않음
품질의 경우, 확대하면 잘 알아볼 수 없을 정도였지만, 동일한 화면 사이즈로 확대를 해 놓고 확대 비율을 확인해 보면 차이를 알 수 있습니다. 즉, 동일한 크기의 이미즈를 볼 때 원본은 180% 수준의 확대면 되는데 압축본은 232% 수준의 확대가 되어야 한다는 것이죠. 하지만, 파일의 다른 부분을 봐도 품질의 차이는 크지 않았습니다.
'DIY 테스트' 카테고리의 다른 글
바이브코딩을 이용한 미로퍼즐 게임 만들기 (0) | 2025.06.17 |
---|---|
[바이브코딩] 수도쿠 게임 만들어보기 (3) | 2025.06.10 |
[Python] 영상 다 보지 말고, 핵심만 뽑아보자! -Youtube 영상에서 스크립트 추출하기 (1) | 2025.06.05 |
WhisperX를 이용한 간이 회의 녹취 프로그램 만들어보기 (0) | 2025.05.23 |
자신만의 폰트 제작 - 2) MX-Font를 이용해 자신만의 손글씨 만들기 (0) | 2025.05.13 |