[도구 요약] img2pdf: 무손실 이미지-PDF 변환 유틸리티
img2pdf는 리눅스 환경에서 이미지를 PDF로 변환할 때 가장 빠르고 효율적인 도구 중 하나입니다. 여러 장의 이미지를 하나의 PDF 문서로 병합하거나, 단일 이미지를 PDF로 변환하는 데 최적화되어 있으며 Python 기반입니다.
이번 포스트에서는 제가 개인적으로 가끔 필요할 때 쓰는 도구인데, 사용할 때마다 "이건 정말 좋다."라고 매번 생각하는 툴입니다. 압도적인 속도와 리눅스특유의 가벼움, 게다가 pipe의 연결로 굉장히 좋아하는 툴이라 소개를 해볼까 합니다.

1. 작동 원리 (Working Principle)
가장 큰 특징은 '재인코딩 없는 병합(No Re-encoding)'입니다. * 기존 방식 (예: ImageMagick): 이미지를 읽어서 픽셀 데이터를 분석한 뒤, PDF 형식에 맞춰 다시 압축(Lossy)합니다. 이 과정에서 CPU 자원을 많이 쓰고 화질 저하가 발생할 수 있습니다. * img2pdf 방식: 이미지 파일의 바이너리 데이터를 그대로(Lossless) PDF 컨테이너 안에 집어넣습니다. * 장점: 속도가 압도적으로 빠르고, 원본 화질이 100% 유지되며, 결과물 용량이 경제적입니다.
2. 설치 및 삭제 (Installation & Removal)
설치 (Ubuntu/Debian 기준)
sudo apt update
sudo apt install img2pdf
삭제
# 프로그램만 삭제
sudo apt remove img2pdf
# 설정 파일 및 의존성까지 깔끔하게 삭제
sudo apt purge img2pdf
sudo apt autoremove
3. 주요 사용법 (Usage Guide)
기본 병합
현재 디렉토리의 모든 PNG 파일을 하나의 PDF로 합칠 때 사용합니다.
img2pdf *.png -o output.pdf
특정 순서로 병합
파일명을 직접 나열하여 순서를 지정할 수 있습니다.
img2pdf image1.png image2.png image3.png -o output.pdf
페이지 크기 및 여백 설정 (고급)
이미지를 특정 규격(예: A4)에 맞추거나 여백을 주고 싶을 때 유용합니다.
# 이미지 크기를 A4에 맞추고 2cm 여백 추가
img2pdf --pagesize A4 --border 2cm *.png -o output.pdf
특정 해상도(DPI) 지정
이미지의 출력 해상도를 강제하고 싶을 때 사용합니다.
img2pdf --dpi 300 *.png -o output.pdf
4. 개발자를 위한 팁 (Developer's Note)
- 정렬 문제: 리눅스 터미널의 와일드카드(
*)는 숫자를 문자열로 인식합니다.- 예:
1.png,10.png,2.png순으로 병합될 수 있습니다. - 해결책: 파일명을
01.png,02.png...10.png와 같이 자릿수를 맞춰 저장하는 것이 가장 안전합니다.
- 예:
- 파이프 활용: 당연한 이야기지만 파이프 활용은 리눅스의 가장 편리한 점 중에 하나입니다. 다른 명령어의 결과를 받아 즉시 PDF로 만들 수 있습니다.
find . -name "*.png" | sort | xargs img2pdf -o output.pdf
한 줄 요약: "화질 손상 없이, 가장 빠르게, 리눅스답게 PDF를 만들고 싶을 때 쓰는 최고의 도구"
댓글이 없습니다.