PDF에서 이미지 추출: poppler 사용하기

PDF 파일에서 이미지를 추출해야 할 때

Page content

PDF에서 이미지를 저장해야 할 때가 있습니다. 스크린샷이나 PDF를 화면에 렌더링하지 않고 이미지를 저장해야 할 필요가 있을 수 있습니다. pdfimages는 이 작업을 도와줍니다. 이 가이드는 우리의 2026년 문서화 도구: Markdown, LaTeX, PDF 및 인쇄 워크플로우 허브의 일부입니다.

화면에 있는 다이어그램을 사진으로 찍는 남자의 만화 이미지

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 매개변수를 사용하여 원하는 해상도를 지정할 수 있습니다:

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 툴킷에서): 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

유용한 링크