Python을 사용하여 PDF를 이미지로 변환하는 방법 | IronPDF

Python을 이용한 PDF를 이미지로 변환

This article was translated from English: Does it need improvement?
Translated
View the article in English

PDF-이미지 변환은 Python 응용 프로그램에서 일반적인 요구 사항입니다. 개발자들은 이를 사용하여 문서 썸네일, 웹 미리보기, 그리고 이미지 처리 파이프라인에 PDF 콘텐츠를 제공합니다. IronPDF for Python은 RasterizeToImageFiles 메서드를 제공하며, 이 메서드는 모든 PDF 문서(또는 URL)를 사용자 지정 가능한 DPI 및 크기로 JPEG, PNG 또는 TIFF 이미지 파일로 변환합니다.

이 가이드는 Python에서 PDF 파일을 이미지를 변환하는 방법, 출력 품질을 제어하는 방법, 그리고 결과 이미지를 레이아웃 제약에 맞게 크기 조정하는 방법을 보여줍니다.

빠른 시작: PDF를 이미지로 변환하기

  1. IronPDF 설치: pip install ironpdf
  2. PDF 문서 불러오기: pdf = PdfDocument.FromFile("document.pdf")
  3. 모든 페이지를 PNG로 변환: pdf.RasterizeToImageFiles("output/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/quickstart.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("document.pdf")
pdf.RasterizeToImageFiles("output/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/quickstart.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("document.pdf")
pdf.RasterizeToImageFiles("output/*.png", DPI=96)
PYTHON

개발자가 PDF를 이미지로 변환하는 이유는 무엇입니까?

PDF-이미지 변환은 소프트웨어 개발에서 여러 실제 문제를 해결합니다. 가장 일반적인 요구 사항은 미리보기 생성 -- 사용자에게 전체 파일을 다운로드하고 열도록 강요하지 않고도 웹 인터페이스나 모바일 애플리케이션에서 PDF 문서의 썸네일을 표시합니다.

기타 자주 사용되는 사례는 다음과 같습니다:

  • 머신러닝 파이프라인: OCR 모델, 레이아웃 분석 도구, 컴퓨터 비전 시스템은 PDF가 아닌 이미지 입력을 수용합니다
  • 아카이빙 및 준수: 원본 PDF 옆에 시각적 스냅샷을 저장하면 PDF 뷰어가 변경되더라도 장기간 가독성을 보장합니다
  • 보고서 포함: 다른 문서나 이메일 템플릿에 특정 PDF 페이지를 이미지로 포함
  • 자동화된 테스트: 렌더링된 페이지 스냅샷을 비교하여 PDF 출력에서 시각적 회귀를 감지

Python은 표준 라이브러리에서 기본 PDF-이미지 기능을 포함하지 않습니다. pdf2image 같은 도구는 Poppler를 외부 바이너리로 설치해야 하므로 배포 과정이 복잡해집니다. IronPDF는 내부적으로 렌더링을 처리하므로, Python 프로젝트에 PDF-to-image 변환 기능을 추가하려면 단 하나의 pip install만 추가하면 됩니다.

참고해 주세요IronPDF는 Chromium 기반의 렌더링 엔진을 사용합니다. HTML로 렌더링된 PDF는 브라우저가 표시하는 것과 동일하게 보이는 이미지를 생성하며, PDF가 HTML 또는 URL 소스에서 유래할 때 유용합니다.

PDF 파일을 이미지로 변환하려면 어떻게 해야 합니까?

PDF를 이미지로 변환하려면 PdfDocument 인스턴스에서 RasterizeToImageFiles를 호출하십시오. 메서드는 지정된 디렉터리에 페이지당 하나의 이미지 파일을 씁니다. 출력 경로에 있는 별표(*)는 1부터 시작하는 페이지 번호로 대체되므로, assets/images/*.pngassets/images/1.png, assets/images/2.png 등으로 변환됩니다.

메서드를 호출하기 전에 출력 디렉터리를 생성하세요. 존재하지 않으면 IronPDF가 자동으로 생성하지 않습니다.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-pdf-to-images.py
from ironpdf import PdfDocument

# Load a PDF from disk
pdf = PdfDocument.FromFile("my-content.pdf")

# Write each page to a PNG file in the "assets/images" folder
# The folder must exist before calling this method
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-pdf-to-images.py
from ironpdf import PdfDocument

# Load a PDF from disk
pdf = PdfDocument.FromFile("my-content.pdf")

# Write each page to a PNG file in the "assets/images" folder
# The folder must exist before calling this method
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
PYTHON

DPI 매개변수는 이미지 해상도를 제어합니다. DPI가 높을수록 더 선명한 이미지를 생성하지만 파일 크기가 커지고 처리 시간이 길어집니다. 표준 값:

DPI 값 및 일반적인 사용 사례
DPI전형적인 사용
72화면 해상도, 빠른 처리
96표준 웹 품질
150우수한 인쇄 품질
300고품질 인쇄 출력
File explorer showing numbered PNG output files (1.png through 11.png) generated by RasterizeToImageFiles from an 11-page PDF

PDF 페이지당 하나의 PNG 파일을 가진 출력 디렉터리

출력 이미지가 흐릿하게 보이면 DPI 값을 늘리십시오. 50페이지 문서를 300 DPI로 처리하는 것은 96 DPI보다 눈에 띄게 더 오래 걸립니다 -- 사용 사례에 대한 실제 품질 요구 사항을 기반으로 선택하세요.

웹 썸네일 생성을 위해, 96 DPI가 충분하며 파일 크기를 작게 유지합니다. 이미지를 전체 크기로 인쇄하거나 표시할 경우 150-300 DPI를 예약하세요.

특정 페이지 범위를 이미지로 변환하려면 어떻게 해야 합니까?

일부 페이지만 변환하려면 페이지 인덱스를 RasterizeToImageFiles의 두 번째 인수로 전달하십시오. 페이지 인덱스는 0부터 시작하는 정수입니다.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-page-range.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Convert only pages 1, 2, and 3 (zero-based indices: 0, 1, 2)
pdf.RasterizeToImageFiles("assets/images/*.png", [0, 1, 2], DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/convert-page-range.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Convert only pages 1, 2, and 3 (zero-based indices: 0, 1, 2)
pdf.RasterizeToImageFiles("assets/images/*.png", [0, 1, 2], DPI=96)
PYTHON

첫 몇 페이지만 미리 볼 필요가 있는 문서에 대해 선택적인 페이지 추출은 전체 파일의 불필요한 처리를 피하는 데 유용합니다. PDF에 이미 내장된 이미지를 추출하는 워크플로에 대해 IronPDF는 별도의 추출 메서드를 제공합니다.

URL을 이미지로 변환하려면 어떻게 해야 합니까?

IronPDF는 웹 페이지를 PDF로 렌더링한 다음 해당 PDF를 이미지로 변환하는 단일 워크플로를 제공합니다. ChromePdfRenderer을 사용하여 URL을 가져와 렌더링한 다음, 결과물인 PdfDocument에 대해 RasterizeToImageFiles을 호출하십시오. 이 접근법은 웹 페이지의 시각적 아카이브를 생성하거나 웹 기반 콘텐츠를 위한 미리보기 이미지를 생성하는 데 유용하며, 별도의 스크린샷 도구가 필요하지 않습니다.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/url-to-images.py
from ironpdf import ChromePdfRenderer

# Render a web page to PDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.example.com")

# Convert each rendered page to a PNG image
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/url-to-images.py
from ironpdf import ChromePdfRenderer

# Render a web page to PDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.example.com")

# Convert each rendered page to a PNG image
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
PYTHON

렌더링된 이미지는 Chromium 브라우저에서의 페이지 표시와 동일하며, CSS 스타일 및 JavaScript로 렌더링된 콘텐츠를 포함합니다. 인증이 필요한 페이지나 상호작용이 필요한 페이지에 대해서는 IronPDF의 HTML to PDF 튜토리얼을 사용하여 사전 렌더링된 마크업을 직접 제공하는 것을 고려하세요. 결과 PDF는 위에 표시된 동일한 접근 방식을 사용하여 래스터화될 수 있습니다.

File explorer showing 5 PNG files (1.png through 5.png) generated from a URL rendered to PDF by IronPDF

IronPDF를 통해 렌더링된 URL에서 생성된 이미지

출력 이미지 크기를 어떻게 제어하나요?

기본적으로 RasterizeToImageFiles는 DPI 계수로 조정된 원본 페이지 크기의 이미지를 생성합니다. 출력 크기를 제한하려면 ImageMaxWidthImageMaxHeight를 설정하십시오. 두 값 모두 픽셀 단위로 측정됩니다.

IronPDF는 ImageMaxHeight 값을 기반으로 원본의 가로세로 비율을 유지합니다. 지정된 너비와 높이가 소스 페이지와 다른 비율을 가졌더라도 출력은 늘어나거나 왜곡되지 않습니다.

#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/constrained-dimensions.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Generate thumbnail images constrained to 500x500 pixels
pdf.RasterizeToImageFiles(
    "assets/images/*.png",
    ImageMaxWidth=500,
    ImageMaxHeight=500,
    DPI=200
)
#:path=/static-assets/pdf/content-code-examples/how-to/python-pdf-to-image/constrained-dimensions.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Generate thumbnail images constrained to 500x500 pixels
pdf.RasterizeToImageFiles(
    "assets/images/*.png",
    ImageMaxWidth=500,
    ImageMaxHeight=500,
    DPI=200
)
PYTHON

ImageMaxWidth=500, ImageMaxHeight=500을 200 DPI로 설정하면 썸네일 표시나 카드 기반 UI 레이아웃에 적합한 이미지를 생성할 수 있습니다. 응용 프로그램 디자인 요구에 맞춰 이 값을 조정하세요. 래스터화된 PDF 콘텐츠를 생성하기 위해, IronPDF는 Python에서 PDF 생성 및 변환 전에 여러 PDF 병합도 지원합니다.

중요한높이를 기준으로 비율이 유지됩니다. 원본 페이지의 너비가 높이보다 넓을 경우, 결과 이미지의 너비가 ImageMaxWidth보다 좁을 수 있습니다. 변동 너비 썸네일을 처리하기 위해 디자인 레이아웃을 설정하세요.

PDF를 이미지로 변환하기 위한 다음 단계는 무엇입니까?

이 가이드는 세 가지 핵심 워크플로를 다루었습니다: PDF 파일을 이미지로 변환, URL을 이미지로 변환, 및 이미지 크기와 품질 제어. IronPDF는 동일한 RasterizeToImageFiles 메서드를 통해 JPEG, JPG, PNG, TIFF 및 기타 형식을 지원합니다. 포맷을 전환하려면 출력 경로 패턴의 파일 확장자를 변경하세요.

추가 자동화를 위해 다음 단계를 고려하세요:

  • 일괄 처리: PDF 파일이 있는 디렉터리를 순차적으로 순회하며 각 파일을 변환하거나, 병렬 처리를 위해 Python의 concurrent.futures 모듈을 사용합니다.
  • 선택적 추출: 페이지 인덱스 매개변수를 사용하여 사용 사례와 관련된 페이지만 추출
  • 이미지 파이프라인 통합: 출력 파일을 PIL/Pillow 또는 OpenCV에 공급하여 자르기, 주석 추가, 또는 포맷 정규화와 같은 추가 처리를 수행
  • 변환 전 압축: 대용량 문서에서 전송 시 스풀 시간을 줄이기 위해 IronPDF의 PDF 압축을 사용하여 래스터화하기 전에 파일 크기 축소
  • 양식 워크플로: PDF 양식 채우기를 프로그래매틱하게 수행하고 그런 다음 리뷰나 아카이빙을 위해 작성 완료된 양식 페이지를 이미지로 변환

IronPDF로 계속 빌딩하려면 IronPDF for Python 문서이미지로 래스터화 PDF 예제를 탐색하세요.

IronPDF for Python의 무료 30일 체험판을 시작하여 이 기능을 프로덕션에서 사용해 보세요. 배포할 준비가 되었을 때, 프로젝트 규모에 맞는 계획을 위해 라이센스 옵션 보기를 확인하세요.

참고해 주세요추가 정보: PDF를 이미지로 변환하기

자주 묻는 질문

Python에서 PDF를 이미지로 어떻게 변환하나요?

pip install ironpdf로 IronPDF를 설치한 후 PdfDocument.FromFile("file.pdf")로 PDF를 불러온 다음 RasterizeToImageFiles("output/*.png", DPI=96)를 호출합니다. 이를 통해 지정된 디렉토리에 페이지당 하나의 이미지를 씁니다.

IronPDF가 PDF 변환을 위해 어떤 이미지 포맷을 지원하나요?

IronPDF는 PNG, JPEG, JPG, 그리고 TIFF 출력 포맷을 지원합니다. 출력 경로 패턴에서 파일 확장자를 변경하여 포맷을 지정할 수 있으며, 예를 들어 JPEG의 경우 *.jpg 또는 TIFF의 경우 *.tiff와 같이 작성합니다.

PDF를 변환할 때 이미지 품질을 어떻게 제어하나요?

RasterizeToImageFiles에서 DPI 매개변수를 사용하세요. 값 96은 표준 웹 품질에 해당합니다. 150은 인쇄 미리보기에 적합하고 300은 고품질 인쇄 출력물을 생성합니다. DPI 값이 높을수록 파일 크기와 처리 시간이 증가합니다.

출력 이미지의 최대 너비 또는 높이를 설정할 수 있나요?

예. RasterizeToImageFiles에 픽셀 단위로 ImageMaxWidthImageMaxHeight를 전달하세요. IronPDF는 높이 값을 기준으로 종횡비를 유지하여 이미지를 왜곡시키지 않습니다.

PDF의 특정 페이지만 이미지로 어떻게 변환하나요?

RasterizeToImageFiles의 두 번째 인수로 0부터 시작하는 페이지 인덱스 목록을 전달하세요. 예를 들어 [0, 1, 2]는 첫 세 페이지만 변환합니다.

IronPDF를 사용하여 웹 페이지 URL을 이미지로 변환할 수 있나요?

예. URL로 RenderUrlAsPdf를 호출하기 위해 ChromePdfRenderer를 사용하세요. 이는 PdfDocument를 반환합니다. 그런 다음 해당 문서에 RasterizeToImageFiles를 호출하여 렌더링된 각 페이지의 이미지 파일을 생성합니다.

IronPDF가 PDF를 이미지로 변환하는 데 외부 바이너리가 필요하나요?

아니요. IronPDF는 자체 Chromium 기반 렌더링 엔진을 포함하며 Poppler, Ghostscript 또는 기타 외부 바이너리 설치가 필요하지 않습니다. pip install ironpdf만으로 시작할 수 있습니다.

변환된 이미지가 흐릿하게 보이는 이유는 무엇인가요?

출력이 흐릿한 것은 낮은 DPI 값 때문입니다. 기본값인 96에서 150 또는 300으로 올려 더 선명한 결과를 얻으세요. 높은 DPI는 파일 크기를 늘리고 처리 시간을 증가시킵니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요?
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.