PDF에서 이미지 추출
PDF 파일에서 이미지를 추출해야 할 때
PDF에서 이미지를 저장해야 할 때가 있습니다. 스크린샷을 찍거나 PDF를 화면에 렌더링하지 않고도 이미지를 저장할 필요가 있을 수 있습니다. pdfimages
는 이 작업에 도움이 됩니다.
Linux에서 PDF 파일에서 이미지를 추출하려면 가장 일반적이고 효과적인 도구는 명령줄 유틸리티 pdfimages입니다. 이 도구는 poppler-utils
패키지의 일부입니다.
Linux에서 pdfimages
유틸리티 사용: 단계별 지침
1. pdfimages 설치 (아직 설치되지 않은 경우):
대부분의 Linux 배포판은 pdfimages
를 기본적으로 포함하고 있습니다. 필요하다면 패키지 관리자를 사용하여 설치할 수 있습니다:
sudo apt-get install poppler-utils
또는 Fedora의 경우:
sudo dnf install poppler-utils
2. 터미널 열기:
Ctrl + Alt + T
를 누르면 터미널 창을 열 수 있습니다.
3. pdfimages를 사용하여 이미지 추출:
기본 구문:
pdfimages
예시:
pdfimages /path/to/file.pdf /path/to/output/image
- 이 명령은
file.pdf
에서 모든 이미지를 추출하고 지정된 출력 디렉토리에image-000.ppm
,image-001.ppm
등으로 저장합니다.
4. JPEG 형식으로 이미지 추출 (필요한 경우):
가능한 경우 JPEG 형식으로 이미지를 추출하려면 -j
옵션을 사용합니다:
pdfimages -j /path/to/file.pdf /path/to/output/image
- 이 명령은 JPEG 이미지를
.jpg
파일로 저장합니다.
5. 특정 페이지에서 이미지 추출:
- 특정 페이지 범위에서 이미지를 추출하려면
-f
(첫 번째 페이지)와-l
(마지막 페이지)를 사용합니다:
pdfimages -f 2 -l 5 -j /path/to/file.pdf /path/to/output/image
- 이 명령은 2페이지부터 5페이지까지의 이미지를 추출합니다.
6. 추가 옵션:
- PNG 형식으로 이미지 추출:
-png
옵션을 사용하되, 사용 중인 버전이 지원해야 합니다. - 암호가 있는 PDF에서 이미지 추출:
-opw 'ownerpassword'
또는-upw 'userpassword'
를 사용합니다.
참고 사항
- 기본 출력 형식은 PPM(컬러) 또는 PBM(흑백)입니다. JPEG로 추출하려면
-j
를 사용하거나, 필요하다면 ImageMagick의convert
와 같은 도구를 사용하여 PPM/PBM 파일을 다른 형식으로 변환할 수 있습니다. - 출력 파일은 자동으로 번호가 붙어 지정된 디렉토리에 저장됩니다.
요약 표
명령 예시 | 설명 |
---|---|
pdfimages input.pdf image |
기본 PPM/PBM 형식으로 모든 이미지 추출 |
pdfimages -j input.pdf image |
가능할 경우 JPEG 형식으로 이미지 추출 |
pdfimages -f 3 -l 5 input.pdf image |
3페이지부터 5페이지까지의 이미지 추출 |
pdfimages -opw 'password' -j input.pdf image |
소유자 암호가 있는 PDF에서 이미지 추출 |
이 방법은 대부분의 내장 이미지를 포함한 PDF에 대해 효율적으로 작동합니다. 하지만:
pdfimages
는 원본 해상도로만 이미지를 추출합니다.- 출력 해상도를 조절하려면 PyMuPDF와 같은 PDF 렌더링 라이브러리를 사용하고 이미지 생성 시 원하는 DPI를 지정해야 합니다.
특정 해상도로 PDF에서 이미지 저장 방법
pdfimages
를 사용할 때 추출된 이미지의 해상도를 지정할 수 없습니다. 이 도구는 이미지를 원본 형식과 해상도 그대로 추출하며, 리샘플링이나 품질 변경 없이 원본 해상도를 유지합니다. 해상도는 PDF에 저장된 방식에 따라 결정되며, pdfimages
는 추출 중 해상도를 조절하거나 확대/축소할 수 있는 옵션이 없습니다.
특정 해상도(예: 선택한 DPI로 페이지 또는 페이지의 일부를 이미지로 렌더링)로 이미지를 추출하려면 PyMuPDF(fitz
)와 같은 PDF 렌더링 라이브러리나 도구를 사용해야 합니다. PyMuPDF에서는 dpi
매개변수를 사용하여 페이지를 이미지로 렌더링할 때 원하는 DPI를 지정할 수 있습니다:
import fitz # PyMuPDF
doc = fitz.open("input.pdf")
page = doc.load_page(0) # 첫 번째 페이지
pix = page.get_pixmap(dpi=300) # 300 DPI로 렌더링
pix.save("output.png")
이 방법은 지정된 DPI로 페이지의 래스터 이미지를 생성하며, 원본 내장 이미지를 추출하는 것과는 다릅니다.
PDF에서 이미지를 추출하는 다른 도구
원본 해상도를 유지하면서 PDF에서 이미지를 추출하는 데 가장 적합한 소프트웨어는 원본 내장 이미지를 직접 추출하는 도구입니다. 렌더링이나 리샘플링을 하지 않기 때문에 추출이 가능합니다. 최상의 선택은 다음과 같습니다:
-
Adobe Acrobat Pro: “모든 이미지 내보내기” 기능을 제공하며, 원본 품질과 형식으로 이미지를 별도 파일로 추출합니다. 이 방법은 매우 신뢰할 수 있으며, PDF에 저장된 이미지의 정확한 해상도와 품질을 유지합니다.
-
pdfimages (XPDF/Poppler 패키지에서 제공)(https://www.glukhov.org/ko/post/2025/04/ubuntu-poppler/ “Ubuntu에서 PDF 조작 도구 - Poppler”): Linux 및 기타 플랫폼에서 사용할 수 있는 무료 오픈소스 명령줄 도구입니다.
pdfimages
는 PDF에서 모든 이미지를 원본 형식과 해상도 그대로 추출하며, JPEG, JPEG2000 등 다양한 형식을 지원합니다. 사용자가 비용 없이 고품질 추출을 원하는 경우에 널리 추천됩니다. -
온라인 도구 (예: PDF24 Tools, PDFCandy, pdfforge): PDF를 업로드하고 추출된 이미지를 다운로드할 수 있는 서비스입니다. 원본 해상도를 유지하며, 설치가 필요하지 않아 간편합니다. 하지만 민감한 문서의 경우 개인정보 보호 문제가 발생할 수 있습니다.
요약 표
소프트웨어/도구 | 플랫폼 | 원본 해상도 유지 | 참고 사항 |
---|---|---|---|
Adobe Acrobat Pro | Windows/Mac | 예 | 유료, 전문용, 매우 신뢰할 수 있음 |
pdfimages (Poppler) | Linux/Windows | 예 | 무료, 오픈소스, 명령줄 유틸리티 |
PDF24 Tools, PDFCandy | 웹 기반 | 예 | 무료, 사용이 간편, 개인정보 보호 고려 필요 |
중요 포인트:
항상 이미지를 추출하는 도구를 사용해야 합니다. 렌더링이나 스크린샷을 하지 않는 것이 중요합니다. Adobe Acrobat Pro와 pdfimages
는 이 목적에 대해 산업 표준으로, 이미지가 PDF에 존재하는 그대로 저장되도록 보장합니다. 해상도 손실 없이 이미지를 저장할 수 있습니다.
pdfutils 명령줄 옵션
pdfimages /help
를 실행하면 다음과 같은 내용이 출력됩니다:
$ pdfimages /help
pdfimages version 24.02.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
-f <int> : first page to convert
-l <int> : last page to convert
-png : change the default output format to PNG
-tiff : change the default output format to TIFF
-j : write JPEG images as JPEG files
-jp2 : write JPEG2000 images as JP2 files
-jbig2 : write JBIG2 images as JBIG2 files
-ccitt : write CCITT images as CCITT files
-all : equivalent to -png -tiff -j -jp2 -jbig2 -ccitt
-list : print list of images instead of saving
-opw <string> : owner password (for encrypted files)
-upw <string> : user password (for encrypted files)
-p : include page numbers in output file names
-q : don't print any messages or errors
-v : print copyright and version info
-h : print usage information
-help : print usage information
--help : print usage information
-? : print usage information