PDF에서 이미지 추출

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

Page content

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

유용한 링크