IRONPDF FOR PYTHONの使用

PythonでPDFファイルを表示する方法

この記事では、PythonでIronPDFライブラリを使ってPDFファイルを表示する方法を探ります。

IronPDF - Python ライブラリ

IronPDFは、開発者がPDFファイルをプログラムで操作できる強力なPythonライブラリです。 IronPDFを使用すると、PDFドキュメントからデータの生成、操作、および抽出を簡単に行うことができ、さまざまなPDF関連の作業に対応する多用途なツールとなります。 PDFを一から作成する必要がある場合、既存のPDFを修正する必要がある場合、またはPDFからコンテンツを抽出する必要がある場合、IronPDFはワークフローを簡素化するための包括的な機能セットを提供します。

IronPDF for Pythonライブラリのいくつかの特徴は以下の通りです:

前提条件

PythonでIronPDFを使用する前に、いくつかの前提条件があります:

  1. Pythonのインストール: システムにPythonがインストールされていることを確認してください。 IronPDFはPython 3.xバージョンと互換性があるため、互換性のあるPythonインストールがあることを確認してください。

  2. IronPDFライブラリ: IronPDFライブラリをインストールして、その機能にアクセスします。 Pythonパッケージマネージャ(pip)を使用して、次のコマンドをコマンドラインインターフェースで実行することでインストールできます。
    :InstallCmd pip install ironpdf
    :InstallCmd pip install ironpdf
SHELL
  1. Tkinterライブラリ: TkinterはPythonの標準的なGUIツールキットです。 提供されたコードスニペットでは、PDFビューアのグラフィカルユーザインターフェイスを作成するために使用されます。 一般的にTkinterはPythonにプリインストールされていますが、問題が発生した場合はパッケージマネージャーを使用してインストールすることができます:
    :InstallCmd pip install tkinter
    :InstallCmd pip install tkinter
SHELL
  1. Pillowライブラリ: PillowライブラリはPython Imaging Library (PIL) のフォークであり、追加の画像処理機能を提供します。 次のコードスニペットでは、PDFから抽出された画像を読み込み、表示するために使用されます。 パッケージマネージャーを使用してPillowをインストールします:
    :InstallCmd pip install pillow
    :InstallCmd pip install pillow
SHELL
  1. 統合開発環境 (IDE): Pythonプロジェクトを扱うためにIDEを使用することで、開発体験を大幅に向上させることができます。 コード補完、デバッグ、およびよりスムーズなワークフローのような機能を提供します。 Python開発向けの人気のIDEの一つはPyCharmです。 JetBrainsのウェブサイトからPyCharmをダウンロードしてインストールできます (https://www.jetbrains.com/pycharm/)。

  2. テキストエディタ: 代わりに、軽量なテキストエディタで作業したい場合は、Visual Studio Code、Sublime Text、Atomなど、お好みのテキストエディタを使用できます。 これらのエディターは、Python開発のための構文ハイライトやその他の便利な機能を提供します。 Pythonスクリプトの作成には、Python独自のIDEアプリを使用することもできます。

PyCharm を使用した PDF ビューア プロジェクトの作成

PyCharm IDEをインストールしたら、以下の手順に従ってPyCharm Pythonプロジェクトを作成します:

  1. PyCharmを起動: システムのアプリケーションランチャーまたはデスクトップショートカットからPyCharmを開きます。

  2. 新しいプロジェクトを作成する: 「Create New Project」をクリックするか、既存のPythonプロジェクトを開きます。

    PythonでPDFをテキストに変換する方法(チュートリアル)、図1:PyCharm IDE

    PyCharm IDE

  3. プロジェクト設定の構成: プロジェクトの名前を指定し、プロジェクトディレクトリを作成する場所を選択します。 プロジェクト用のPythonインタープリターを選択します。 次に、「作成」をクリックします。

    PythonでPDFをテキストに変換する方法(チュートリアル)、図2: 新しいPythonプロジェクトを作成

    新しいPythonプロジェクトを作成する

  4. ソースファイルの作成: PyCharmは、メインのPythonファイルと追加のソースファイル用のディレクトリを含むプロジェクト構造を作成します。 コードを書き始め、「実行」ボタンをクリックするか、Shift+F10を押してスクリプトを実行します。

IronPDFを用いてPythonでPDFファイルを表示する手順

必要なライブラリをインポートする

はじめに、必要なライブラリをインポートします。 この場合、osshutilironpdftkinter、およびPILライブラリが必要になります。 osshutilライブラリはファイルとフォルダの操作に使用され、ironpdfはPDFファイルを扱うためのライブラリであり、tkinterはグラフィカルユーザーインターフェース(GUI)の作成に使用され、PILは画像の操作に使用されます。

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

PDFドキュメントを画像に変換

次に、convert_pdf_to_imagesという名前の関数を定義します。 この関数は、PDFファイルのパスを入力として受け取ります。 関数内部では、IronPDFライブラリがファイルからPDFドキュメントをロードするために使用されます。次に、抽出した画像ファイルを保存するフォルダパスを指定します。 IronPDFのpdf.RasterizeToImageFilesメソッドは、PDFの各ページを画像ファイルに変換し、指定されたフォルダに保存するために使用されます。 また、画像パスの保存にはリストが使用されます。 以下は完全なコード例です:

def convert_pdf_to_images(pdf_file):
    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
py
PYTHON

PDFドキュメントからテキストを抽出するには、こちらのコード例ページをご覧ください。

ウィンドウの閉鎖を処理

アプリケーションウィンドウを閉じたときに抽出された画像ファイルをクリーンアップするために、on_closing 関数を定義します。 この関数の内部で、shutil.rmtree() メソッドを使用して、images フォルダー全体を削除します。 次に、ウィンドウが閉じられたときに実行されるプロトコルとして、この関数を設定します。 以下のコードはタスクを達成するのに役立ちます:

def on_closing():
    # Delete the images in the 'images' folder
    shutil.rmtree("images")
    window.destroy()

window.protocol("WM_DELETE_WINDOW", on_closing)
py
PYTHON

GUIウィンドウを作成

では、Tk() コンストラクタを使用してメインGUIウィンドウを作成し、ウィンドウタイトルを「Image Viewer」に設定し、ウィンドウの閉鎖を処理するプロトコルとして on_closing() 関数を設定しましょう。

window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
py
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)
canvas.bind("<Configure>", lambda e: canvas.configure(
    scrollregion=canvas.bbox("all")))
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
    int(-1*(e.delta/120)), "units"))
py
PYTHON

画像にフレームを作成する

次に、Frameウィジェットをキャンバス内に作成し、create_window()を使用してキャンバス内にフレームを配置して画像を保持します。 (0, 0)座標とanchor='nw'パラメーターは、フレームがキャンバスの左上隅から開始することを保証します。

frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
py
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)
py
PYTHON

PythonでPDFをテキストに変換する方法(チュートリアル)、図3: 入力ファイル

入力ファイル

GUIメインループを実行する

最後に、window.mainloop()を使用してメインイベントループを実行しましょう。 これにより、GUIウィンドウがユーザーによって閉じられるまで開いたまま応答し続けることが保証されます。

window.mainloop()
py
PYTHON

PDFをテキストに変換する方法 (Pythonチュートリアル)、図4: UIの出力

UI出力

結論

このチュートリアルでは、IronPDFライブラリを使用してPythonでPDFドキュメントを表示する方法を探りました。 PDFファイルを開き、それを一連の画像ファイルに変換し、スクロール可能なキャンバスにそれらを表示し、アプリケーションを閉じたときに抽出された画像のクリーンアップを処理するために必要な手順をカバーしました。

IronPDF for Pythonライブラリの詳細については、ドキュメントをご参照ください。

IronPDF for Python ライブラリをダウンロードしてインストールし、商業開発でその完全な機能をテストするための無料トライアルも取得してください。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
PythonでPDFからテキストを抽出する方法
次へ >
PythonでPDFをテキストに変換する方法(チュートリアル)