フッターコンテンツにスキップ
PYTHON PDFツール

PythonでPDFを画像に変換する方法

PDF(ポータブル・ドキュメント・フォーマット)は、コンテンツのフォーマットを損なわず、セキュリティ許可によりデータを保護するため、インターネットを介してデータを転送するための最も人気のあるファイル形式です。 PDFファイルをJPG画像やPNG、BMP、TIFF、GIFなどの他の画像形式に変換する必要があるシナリオがあります。 JPG変換用のオンラインリソースはたくさんありますが、Pythonで独自のPDFから画像への変換ツールを作成できたら素晴らしいでしょう。

Pythonとは何か?

Pythonは、高レベルのプログラミング言語であり、ソフトウェアアプリケーション、ウェブサイトの構築、自動化タスクの実行、データ分析の実施、人工知能と機械学習のタスクを実行するために使用されます。 また、スクリプト言語でもあり、インタープリタ型なので、迅速な開発とテストが可能です。

PDFから画像へのコンバーターを作成するには、パソコンにPython 3+がインストールされている必要があります。 公式ウェブサイトから最新バージョンをダウンロードし、インストールします。

この記事では、Python PDFから画像ライブラリを使用して独自の画像変換アプリケーションを作成します。 この目的のために、Pythonの最も人気のある2つのライブラリであるPDF2ImageとPyMuPDFを使用します。

PythonでPDFファイルを画像ファイルに変換する方法

  1. PDFを画像に変換するためのPythonライブラリをインストールします。
  2. 任意の場所から既存のPDFファイルをロードします。
  3. 変換メソッドを利用します。
  4. ファイルのページを繰り返し処理します。
  5. 保存メソッドを使用して各ページをJPGまたはPNG画像として保存します。

新しいPythonファイルを作成します

  1. Python IDLEアプリケーションを開き、Ctrl + Nキーを押します。 テキストエディタが開きます。 これには好みのテキストエディタを使用できます。
  2. ファイルをpdf2image.pyとして保存し、画像に変換したいPDFファイルと同じ場所に保存します。

使用する予定の入力PDFファイルは28ページを含み、以下の通りです:

PythonでPDFを画像に変換する方法:図1

PDF2Imageライブラリを使用してPDFファイルを画像ファイルに変換する

1. PDF2Image Pythonライブラリをインストールする

PDF2Imageは、pdftocairoおよびpdftoppmをラップするモジュールです。 Python 3.7+で動作し、PDFをPIL画像オブジェクトに変換します。 以前のリリース履歴によると、PDFを画像形式に変換するためにpdftoppmのみをラップし、Python 3+でのみ動作しました。

pdf2imageパッケージをインストールするには、WindowsコマンドプロンプトまたはWindows PowerShellを開き、次のpipコマンドを使用します:

pip install pdf2image
pip install pdf2image
SHELL

PipPreferred Installer Program)はPythonのパッケージマネージャーです。 Python標準ライブラリにない機能と機能を提供するサードパーティのソフトウェアパッケージをダウンロードし、インストールします。

注意: コマンドラインのどこからでもこのコマンドを実行するには、PythonをPATHに追加する必要があります。 Python 3+の場合、pip3を使用することが推奨されます。これは、pipの更新バージョンです。

2. Popplerをインストールする

Popplerは、PDFファイルを扱うための無料かつオープンソースのライブラリです。 PDFファイルのレンダリング、コンテンツの読み取り、およびPDFファイル内のコンテンツの変更に使用されます。 主にLinuxユーザーによく使用されます。 ただし、Windowsの場合、最新バージョンのPopplerをダウンロードする必要があります。

Windowsの場合

Windowsユーザーは、こちらから最新バージョンのPopplerをダウンロードできます:@oschwartz10612版。 その後、bin/folderをPATH環境変数に追加する必要があります。

Macの場合

MacユーザーもPopplerをインストールする必要があります。 Brewを使用してインストールできます:

brew install poppler
brew install poppler
SHELL

Linuxの場合

ほとんどのLinuxディストリビューションには、pdftoppmおよびpdftocairoコマンドラインユーティリティが付属しています。 これらのユーティリティがインストールされていない場合は、パッケージマネージャを使用してpoppler-utilsをインストールできます。

プラットフォーム非依存(condaを使用)

  1. popplerをインストールする:

    conda install -c conda-forge poppler
    conda install -c conda-forge poppler
    SHELL
  2. pdf2imageをインストールする:

    pip install pdf2image
    pip install pdf2image
    SHELL

これで全て準備が整いましたので、PDFを画像に変換するコードを始めます。

3. PDFファイルを画像ファイルに変換するコード

以下のコードは、入力PDFファイルの画像変換を実行します:

from pdf2image import convert_from_path

# Notify the user that the process is starting
print("Please wait while the file is being loaded.")
file = convert_from_path('file.pdf')

# Iterate over all pages in the PDF file
for i in range(len(file)):
    # Update user on progress
    print("Progress: " + str(round(i / len(file) * 100)) + "%")
    # Save each page as a JPG image file
    file[i].save('page' + str(i + 1) + '.jpg', 'JPEG')

# Notify the user that the conversion is successful
print("Conversion Successful")
from pdf2image import convert_from_path

# Notify the user that the process is starting
print("Please wait while the file is being loaded.")
file = convert_from_path('file.pdf')

# Iterate over all pages in the PDF file
for i in range(len(file)):
    # Update user on progress
    print("Progress: " + str(round(i / len(file) * 100)) + "%")
    # Save each page as a JPG image file
    file[i].save('page' + str(i + 1) + '.jpg', 'JPEG')

# Notify the user that the conversion is successful
print("Conversion Successful")
PYTHON

上記のコードでは、まずconvert_from_pathメソッドを使用してファイルを開きます。 このメソッドは、指定されたパスにあるファイルを開きます。 次に、変換するPDFファイルの各ページをJPG画像に変換するためにループします。 最後に、saveメソッドを使用して、変換された各ページをJPG画像ファイルとして保存します。プログラムを実行し、変換が完了するのを待ちます。 出力画像ファイルは、プログラムと同じフォルダーに保存されます。

PythonでPDFを画像に変換する方法:図2

PythonでPDFを画像に変換する方法:図3

PyMuPDFライブラリを使用してPDFファイルを画像に変換する

1. PyMuPDF Pythonライブラリをインストールする

PyMuPDFは、軽量の電子書籍、PDF、およびXPSビューア、レンダラー、およびツールキットであるMuPDFへの拡張Pythonバインディングです。 JPGやPNGなどの他の形式にPDFを変換するために使用できます。 PyMuPDFはPython 3.7以上のバージョンで動作します。

PyMuPDFパッケージをインストールするには、WindowsコマンドプロンプトまたはWindows PowerShellを開き、次のpipコマンドを使用します:

pip install pymupdf
pip install pymupdf
SHELL

PyMuPDFは、PDF2Imageパッケージのように追加のライブラリを必要としないことに注意してください。

2. PDFファイルを画像に変換するコード

次のコードは、PyMuPDFのfitzモジュールをインポートし、PDFを画像に変換するために使用します:

import fitz  # PyMuPDF

# Open the PDF file
doc = fitz.open("file.pdf")

# Iterate over each page in the document
for x in range(len(doc)):
    page = doc.load_page(x)  # Load a specific page
    pix = page.get_pixmap()  # Render page to image
    output = "output/pdfpage" + str(x + 1) + ".png"  # Specify output path
    pix.save(output)  # Save the image to the output path

# Close the document
doc.close()
import fitz  # PyMuPDF

# Open the PDF file
doc = fitz.open("file.pdf")

# Iterate over each page in the document
for x in range(len(doc)):
    page = doc.load_page(x)  # Load a specific page
    pix = page.get_pixmap()  # Render page to image
    output = "output/pdfpage" + str(x + 1) + ".png"  # Specify output path
    pix.save(output)  # Save the image to the output path

# Close the document
doc.close()
PYTHON

上記のコードでは、ファイル名を引数としてfitz.openメソッドに渡し、ファイルを開きます。次に、ドキュメント全体をループして、各ページを個別に読み込みます。 get_pixmapメソッドは、各ドキュメントページを画像ピクセルに変換するために使用され、結果の画像はsaveメソッドを使用して出力フォルダーに保存されます。 最後に、開かれたドキュメントを閉じてメモリを解放します。

PDF2Imageと比較すると、PyMuPDFはPDFをPNGに変換する際に高速です。 PDF2Imageはその圧縮率によりPNG形式では遅くなることがあります。 出力はPDF2Imageと同じです:

PythonでPDFを画像に変換する方法:図4

C#でのPDFから画像への変換をレンダリングする

IronPDFライブラリ

IronPDFは、PDFファイルを生成、読み取り、操作するためのライブラリです。 その特技は、Chromiumエンジンを用いてHTMLをPDFにレンダリングすることです。この機能は、HTMLファイルやURLをPDFドキュメントに変換する必要がある開発者の間で人気があります。 さらに、さまざまな形式からPDFファイルへの変換を提供します。

PDFファイルを画像にラスタライズするのも、たった2行のコードで可能です。 次のコードは、PDFを異なる画像形式に変換する方法を示しています:

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("https://example.com");
PDF.SaveAs("html.pdf");

// Rasterize the PDF
List<string> Images = PDF.RasterizeToImageFiles(ImageType.Png);
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("https://example.com");
PDF.SaveAs("html.pdf");

// Rasterize the PDF
List<string> Images = PDF.RasterizeToImageFiles(ImageType.Png);
Imports IronPdf

Private Renderer = New IronPdf.ChromePdfRenderer()
Private PDF = Renderer.RenderUrlAsPdf("https://example.com")
PDF.SaveAs("html.pdf")

' Rasterize the PDF
Dim Images As List(Of String) = PDF.RasterizeToImageFiles(ImageType.Png)
$vbLabelText   $csharpLabel

Download IronPDF and try it for 無料で試してみてください

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。