とあるweb申請サイトで書類のアップロードをする際にPDF不可、JPEGのみ指定があったので、簡単に変換できるアプリを作ってみました。
本ツールは、PDFファイルをJPEG画像に変換するシンプルなPythonスクリプトです。
外部の変換ソフトを使用せず、Python環境のみで動作します。
必要なもの
Python がインストールされた環境で、以下のライブラリが必要です。
pip install pypdfium2 pillow
使い方
PDFファイルを指定すると、全ページをJPEG画像として出力します。
出力された画像は、PDFと同じフォルダに保存されます。
python pdf2jpg.py sample.pdf
引数を指定しない場合は、起動後に表示されるファイル選択画面からPDFを選択できます。
サポートについて
本ツールは参考実装として無償で公開しています。
個別のサポートや動作保証は行っておりませんので、あらかじめご了承ください。
# ==================================================
# PDF to JPG Converter
#
# Copyright (c) 2025 Sketlab LLC
# Released under the MIT License.
# https://opensource.org/licenses/MIT
#
# This software is provided "as is", without warranty
# of any kind. No support or maintenance is provided.
# ==================================================
import sys
from pathlib import Path
import tkinter as tk
from tkinter import filedialog
import pypdfium2 as pdfium
# ===== 起動時表示 =====
def show_banner():
print("=" * 50)
print("PDF to JPG Converter (C) 2025 Sketlab LLC")
print("=" * 50)
def select_pdf():
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename(
title="PDFファイルを選択してください",
filetypes=[("PDF files", "*.pdf")]
)
root.destroy()
return file_path
def pdf_to_jpg_all_pages(pdf_file: str):
pdf_path = Path(pdf_file)
if not pdf_path.exists():
raise FileNotFoundError("PDFファイルが見つかりません")
pdf = pdfium.PdfDocument(str(pdf_path))
page_count = len(pdf)
scale = 300 / 72 # 300dpi相当
for i in range(page_count):
page = pdf.get_page(i)
bitmap = page.render(scale=scale)
pil_image = bitmap.to_pil()
# [元のファイル名.pdf]_p000.jpg
output_path = pdf_path.with_name(
f"{pdf_path.name}_p{i+1:03}.jpg"
)
pil_image.save(output_path, "JPEG", quality=95)
print(f"[{i+1:03}/{page_count:03}] 作成: {output_path}")
def main():
show_banner()
pdf_file = sys.argv[1] if len(sys.argv) >= 2 else select_pdf()
if not pdf_file:
print("PDFが選択されませんでした")
return
pdf_to_jpg_all_pages(pdf_file)
main()

