푸터 콘텐츠로 바로가기
PYTHON용 IRONPDF 사용하기

Python에서 PDF 파일을 보는 방법

이 글에서는 IronPDF 라이브러리를 사용하여 Python에서 PDF 파일을 보는 방법을 살펴보겠습니다.

IronPDF - Python 라이브러리

IronPDF 는 개발자가 PDF 파일을 프로그래밍 방식으로 다룰 수 있도록 해주는 강력한 Python 라이브러리입니다. IronPDF 사용하면 PDF 문서를 쉽게 생성, 조작 및 데이터 추출할 수 있으므로 다양한 PDF 관련 작업에 활용할 수 있는 다재다능한 도구입니다. PDF를 처음부터 생성하든, 기존 PDF를 수정하든, PDF에서 콘텐츠를 추출하든, IronPDF 워크플로를 간소화하는 포괄적인 기능 세트를 제공합니다.

Python용 IronPDF 라이브러리의 주요 기능은 다음과 같습니다.

참고: IronPDF 워터마크가 포함된 PDF 데이터 파일을 생성합니다. 워터마크를 제거하려면 IronPDF 라이선스를 구매해야 합니다. IronPDF 의 라이선스 버전을 사용하려면 IronPDF 웹사이트를 방문하여 라이선스 키를 받으십시오 .

필수 조건

Python에서 IronPDF 사용하기 전에 몇 가지 사전 요구 사항이 있습니다.

  1. Python 설치: 시스템에 Python이 설치되어 있는지 확인하십시오. IronPDF 는 Python 3.x 버전과 호환되므로, 호환되는 Python이 설치되어 있는지 확인하십시오.
  2. IronPDF 라이브러리: IronPDF 라이브러리를 설치하면 해당 기능을 사용할 수 있습니다. 명령줄 인터페이스에서 다음 명령을 실행하여 Python 패키지 관리자( pip )를 사용하여 설치할 수 있습니다.

    pip install ironpdf
    pip install ironpdf
    SHELL
  3. Tkinter 라이브러리: Tkinter는 Python의 표준 GUI 툴킷입니다. 제공된 코드 조각에서 PDF 뷰어의 그래픽 사용자 인터페이스를 생성하는 데 사용됩니다. Tkinter는 일반적으로 Python에 사전 설치되어 있지만, 문제가 발생할 경우 패키지 관리자를 사용하여 설치할 수 있습니다.

    pip install tkinter
    pip install tkinter
    SHELL
  4. Pillow 라이브러리: Pillow 라이브러리는 Python Imaging Library(PIL)의 포크 버전으로, 추가적인 이미지 처리 기능을 제공합니다. 이 코드는 PDF에서 추출한 이미지를 불러와 표시하는 데 사용됩니다. 패키지 관리자를 사용하여 Pillow를 설치하세요.

    pip install pillow
    pip install pillow
    SHELL
  5. 통합 개발 환경(IDE): Python 프로젝트를 관리할 때 IDE를 사용하면 개발 경험이 크게 향상될 수 있습니다. 이 도구는 코드 자동 완성, 디버깅, 더욱 간소화된 워크플로와 같은 기능을 제공합니다. Python 개발에 널리 사용되는 IDE 중 하나는 PyCharm입니다. PyCharm은 JetBrains 웹사이트( https://www.jetbrains.com/pycharm/ )에서 다운로드하여 설치할 수 있습니다.
  6. 텍스트 편집기: 또는, 가벼운 텍스트 편집기를 사용하고 싶다면 Visual Studio Code, Sublime Text 또는 Atom과 같은 원하는 텍스트 편집기를 사용할 수 있습니다. 이 편집기들은 Python 개발에 유용한 구문 강조 표시 및 기타 기능들을 제공합니다. Python 스크립트를 작성할 때는 Python 자체 IDE 앱을 사용할 수도 있습니다.

PyCharm을 사용하여 PDF 뷰어 프로젝트 생성하기

PyCharm IDE를 설치한 후 아래 단계를 따라 PyCharm Python 프로젝트를 생성하세요.

  1. PyCharm 실행: 시스템의 애플리케이션 실행기 또는 바탕 화면 바로 가기를 사용하여 PyCharm을 엽니다.
  2. 새 프로젝트 생성: "새 프로젝트 생성"을 클릭하거나 기존 Python 프로젝트를 엽니다.

Python에서 PDF를 텍스트로 변환하는 방법 (튜토리얼), 그림 1: PyCharm IDE PyCharm IDE

  1. 프로젝트 설정 구성: 프로젝트 이름을 지정하고 프로젝트 디렉터리를 생성할 위치를 선택합니다. 프로젝트에 사용할 Python 인터프리터를 선택하세요. 그런 다음 "생성"을 클릭하세요.

Python에서 PDF를 텍스트로 변환하는 방법 (튜토리얼), 그림 2: 새로운 Python 프로젝트 생성 새로운 Python 프로젝트를 생성하세요

  1. 소스 파일 생성: PyCharm은 메인 Python 파일과 추가 소스 파일을 저장할 디렉터리를 포함한 프로젝트 구조를 생성합니다. 코드를 작성하고 실행 버튼을 클릭하거나 Shift+F10 키를 눌러 스크립트를 실행하세요.

IronPDF 사용하여 Python에서 PDF 파일을 보는 단계

필요한 라이브러리를 가져옵니다.

먼저 필요한 라이브러리를 가져옵니다. 이 경우, os, shutil, ironpdf, tkinterPIL 라이브러리가 필요합니다. osshutil 라이브러리는 파일 및 폴더 작업에 사용되며, ironpdf는 PDF 파일 작업에 필요한 라이브러리이고, tkinter는 그래픽 사용자 인터페이스(GUI) 생성에 사용되며, PIL은 이미지 조작에 사용됩니다.

import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
PYTHON

PDF 문서를 이미지로 변환

다음으로, convert_pdf_to_images라는 함수를 정의합니다. 이 함수는 PDF 파일의 경로를 입력으로 받습니다. 함수 내부에서는 IronPDF 라이브러리를 사용하여 파일에서 PDF 문서를 불러옵니다. 그런 다음 추출된 이미지 파일을 저장할 폴더 경로를 지정합니다. IronPDF의 pdf.RasterizeToImageFiles 메소드는 PDF의 각 페이지를 이미지 파일로 변환하고, 지정된 폴더에 저장하는 데 사용됩니다. 리스트는 이미지 경로를 저장하는 데 사용됩니다. 전체 코드 예제는 다음과 같습니다.

def convert_pdf_to_images(pdf_file):
    """Convert each page of a PDF file to an image."""
    pdf = ironpdf.PdfDocument.FromFile(pdf_file)
    # Extract all pages to a folder as image files
    folder_path = "images"
    pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
    # List to store the image paths
    image_paths = []
    # Get the list of image files in the folder
    for filename in os.listdir(folder_path):
        if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
            image_paths.append(os.path.join(folder_path, filename))
    return image_paths
def convert_pdf_to_images(pdf_file):
    """Convert each page of a PDF file to an image."""
    pdf = ironpdf.PdfDocument.FromFile(pdf_file)
    # Extract all pages to a folder as image files
    folder_path = "images"
    pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
    # List to store the image paths
    image_paths = []
    # Get the list of image files in the folder
    for filename in os.listdir(folder_path):
        if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
            image_paths.append(os.path.join(folder_path, filename))
    return image_paths
PYTHON

PDF 문서에서 텍스트를 추출하는 방법에 대한 자세한 내용은 이 코드 예제 페이지를 참조하세요.

창문 닫기 손잡이

애플리케이션 창을 닫을 때 추출된 이미지 파일을 정리하려면, on_closing 함수를 정의하세요. 이 함수 내부에서 shutil.rmtree() 메소드를 사용하여 전체 images 폴더를 삭제합니다. 다음으로, 이 함수를 창이 닫힐 때 실행될 프로토콜로 설정하십시오. 다음 코드는 해당 작업을 수행하는 데 도움이 됩니다.

def on_closing():
    """Handle the window closing event by cleaning up the images."""
    # Delete the images in the 'images' folder
    shutil.rmtree("images")
    window.destroy()

window.protocol("WM_DELETE_WINDOW", on_closing)
def on_closing():
    """Handle the window closing event by cleaning up the images."""
    # Delete the images in the 'images' folder
    shutil.rmtree("images")
    window.destroy()

window.protocol("WM_DELETE_WINDOW", on_closing)
PYTHON

GUI 창을 생성합니다

이제 Tk() 생성자를 사용하여 메인 GUI 창을 만들고, 창 제목을 "이미지 뷰어"로 설정하고, on_closing() 함수를 창 종료를 처리하는 프로토콜로 설정합니다.

window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
PYTHON

스크롤 가능한 캔버스 만들기

이미지를 표시하고 스크롤을 활성화하려면, Canvas 위젯을 생성하세요. Canvas 위젯은 pack(side=LEFT, fill=BOTH, expand=True)를 사용하여 사용 가능한 공간을 채우고 양방향으로 확장되도록 구성됩니다. 또한, Scrollbar 위젯을 생성하고 모든 페이지 및 캔버스의 수직 스크롤을 제어하도록 구성합니다.

canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)

scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)

# Update the scrollregion to encompass the entire canvas
canvas.bind("<Configure>", lambda e: canvas.configure(
    scrollregion=canvas.bbox("all")))

# Configure the vertical scrolling using mouse wheel
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
    int(-1*(e.delta/120)), "units"))
canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)

scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)

# Update the scrollregion to encompass the entire canvas
canvas.bind("<Configure>", lambda e: canvas.configure(
    scrollregion=canvas.bbox("all")))

# Configure the vertical scrolling using mouse wheel
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
    int(-1*(e.delta/120)), "units"))
PYTHON

이미지용 프레임을 만드세요

다음으로, 캔버스 내에 Frame 위젯을 생성하여 이미지를 보유하고, create_window()를 사용하여 프레임을 캔버스 내에 배치합니다. (0, 0) 좌표와 anchor='nw' 매개변수를 사용하여 프레임이 캔버스의 왼쪽 상단 모서리에서 시작되도록 합니다.

frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
PYTHON

PDF 파일을 이미지로 변환하여 표시합니다.

다음 단계는 입력 PDF 파일의 파일 경로 이름과 함께 convert_pdf_to_images() 함수를 호출하는 것입니다. 이 함수는 PDF 페이지를 이미지로 추출하여 이미지 경로 목록을 반환합니다. 이미지 경로를 반복하고 PIL 라이브러리의 Image.open() 메소드를 사용하여 각 이미지를 로드하여, ImageTk.PhotoImage()를 사용하여 PhotoImage 객체를 생성합니다. 그런 다음 이미지를 표시하기 위해 Label 위젯을 만듭니다.

images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
    image = Image.open(image_path)
    photo = ImageTk.PhotoImage(image)
    label = Label(frame, image=photo)
    label.image = photo  # Store a reference to prevent garbage collection
    label.pack(pady=10)
images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
    image = Image.open(image_path)
    photo = ImageTk.PhotoImage(image)
    label = Label(frame, image=photo)
    label.image = photo  # Store a reference to prevent garbage collection
    label.pack(pady=10)
PYTHON

Python에서 PDF를 텍스트로 변환하는 방법 (튜토리얼), 그림 3: 입력 파일 입력 파일

GUI 메인 루프를 실행합니다.

마지막으로, window.mainloop()를 사용하여 메인 이벤트 루프를 실행합니다. 이렇게 하면 사용자가 창을 닫을 때까지 GUI 창이 열린 상태로 유지되고 응답성을 확보할 수 있습니다.

window.mainloop()
window.mainloop()
PYTHON

Python에서 PDF를 텍스트로 변환하는 방법 (튜토리얼), 그림 4: UI 출력 UI 출력

결론

이 튜토리얼에서는 IronPDF 라이브러리를 사용하여 Python에서 PDF 문서를 보는 방법을 살펴보았습니다. 이 문서에서는 PDF 파일을 열고 일련의 이미지 파일로 변환한 다음 스크롤 가능한 캔버스에 표시하고 애플리케이션이 종료될 때 추출된 이미지를 정리하는 데 필요한 단계를 다룹니다.

Python용 IronPDF 라이브러리에 대한 자세한 내용은 설명서 를 참조하십시오.

IronPDF for Python 라이브러리를 다운로드하여 설치하고, 무료 평가판을 통해 상업적 개발 환경에서 모든 기능을 테스트해 보세요.

자주 묻는 질문

Python에서 PDF 파일을 어떻게 볼 수 있나요?

IronPDF 라이브러리를 사용하면 Python에서 PDF 파일을 볼 수 있습니다. 이 라이브러리를 사용하면 PDF 페이지를 이미지로 변환할 수 있으며, 변환된 이미지는 Tkinter를 사용하는 GUI 애플리케이션에 표시할 수 있습니다.

Python으로 PDF 뷰어를 만들려면 어떤 단계가 필요합니까?

Python으로 PDF 뷰어를 만들려면 IronPDF를 설치하고, GUI 구현에는 Tkinter를, 이미지 처리에는 Pillow를 사용해야 합니다. IronPDF를 이용해 PDF 페이지를 이미지로 변환하고, Tkinter로 생성한 스크롤 가능한 캔버스에 표시해 보세요.

Python 프로젝트에서 IronPDF를 사용하려면 어떻게 설치해야 하나요?

터미널이나 명령 프롬프트에서 pip install ironpdf 명령어를 실행하여 pip를 이용해 IronPDF를 설치할 수 있습니다.

Python으로 PDF 뷰어 애플리케이션을 개발하는 데 필요한 라이브러리는 무엇인가요?

PDF 처리를 위해서는 IronPDF가, GUI 구현을 위해서는 Tkinter가, 이미지 처리를 위해서는 Pillow가 필요합니다.

Python을 사용하여 PDF에서 이미지를 추출할 수 있나요?

네, IronPDF를 사용하면 PDF에서 이미지를 추출할 수 있으며, 추출된 이미지는 Pillow 라이브러리를 사용하여 처리하거나 표시할 수 있습니다.

Python을 사용하여 PDF 페이지를 이미지로 변환하는 방법은 무엇인가요?

IronPDF의 기능을 사용하면 PDF 페이지를 이미지 형식으로 변환할 수 있으며, 변환된 이미지는 Python 애플리케이션에서 조작하거나 표시할 수 있습니다.

Python PDF 뷰어 애플리케이션에서 창 닫기를 어떻게 처리해야 할까요?

PDF 뷰어 애플리케이션에서는 Tkinter의 이벤트 처리 함수를 사용하여 추출된 이미지를 정리하고 모든 리소스가 제대로 해제되도록 함으로써 창 닫기를 처리할 수 있습니다.

Python에서 PDF 파일을 안전하게 보호하는 방법은 무엇인가요?

IronPDF는 PDF 파일에 암호 및 사용 제한을 추가하여 PDF 보안을 강화하는 옵션을 제공합니다.

PDF 뷰어 애플리케이션에서 Tkinter를 사용하는 장점은 무엇인가요?

Tkinter를 사용하면 PDF 뷰어를 위한 사용자 친화적인 그래픽 인터페이스를 만들 수 있으며, PDF 페이지를 탐색할 수 있는 스크롤 가능한 보기와 같은 기능을 구현할 수 있습니다.

PDF 프로젝트에서 Pillow를 사용하는 목적은 무엇인가요?

Pillow는 PDF 프로젝트에서 이미지 처리에 사용되며, IronPDF를 사용하여 PDF 파일에서 추출한 이미지를 불러와 표시하는 등의 작업을 수행합니다.

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

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

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

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해