【Python】フォルダー内の画像をpdf化する

当サイトで紹介する商品・サービス等の外部リンクは、アフィリエイト広告を含む場合があります。
スポンサーリンク
本記事を読むと以下の実行ができます

フォルダー内の画像をPDF化する。

画像ファイルを一つのPDFにまとめることは、
プロジェクトやレポート、プレゼンテーションなどで非常に便利です。

特に、複数の画像ファイルを整理し、一つのファイルとして共有したい場合に役立ちます。
本記事では、Pythonを使ってフォルダー内の画像ファイルを簡単にPDFに変換する方法を紹介します。

本記事は次の人におすすめ
  • 複数の画像ファイルを一つにまとめたい
  • 画像をPDFに変換する方法を探している
  • プロジェクトやレポートに画像を一括で取り込みたい
スポンサーリンク

画像をPDF化するメリット

画像をPDF化することで、複数の画像ファイルを一つにまとめることができます。
これにより、ファイル管理が容易になり、共有や印刷が簡単になります。

また、PDFは広くサポートされているフォーマットであり、
PCやiPad、スマートフォンなど異なるデバイスやプラットフォームでも一貫した表示が可能です。

さらに、PDFファイルはセキュリティ機能も備えており、
パスワード保護や編集制限を設定することができます。

PDF化するモジュール

画像をPDFにするモジュールは、「img2pdf」、「FPDF」などがあります。

img2pdfFPDF
使いやすさ非常に簡単少し難しい
変換速度高速img2pdfよりやや遅い
画像品質元の品質を保持圧縮で品質が低下する可能性がある
ファイルサイズ大きくなる可能性がある圧縮で小さくなる
多機能性低機能
(画像の変換に特化、テキストNG)
高機能
(テキスト、グラフィック、リンクなどの追加が可能)
カスタマイズ性制限が多い高い

img2pdfは、手短なコードで処理できますが、ファイルが大きくなります。
対して、FPDFは、複雑な処理が可能なので、ファイルのサイズを小さくできます。

著者の体験談
著者の体験談

FPDFは、コードエラーが良く起きたので、
画像変換だけの場合は、img2pdfを使うのがおすすめ。

img2pdfの場合は、次のようなコードで画像をPDF化できます。

import img2pdf
from pathlib import Path

# 画像ファイルのパスを指定
image_path = 'input.jpg'
images_path =['input1.jpg','input2.jpg','input3.jpg'] #複数の画像を1つのPDFにする。
pdf_path = 'output.pdf'

# 画像をPDFに変換して保存
with open(pdf_path, "wb") as f:
    f.write(img2pdf.convert(image_path))

print(f"PDF saved as {pdf_path}")

フォルダー内の画像をPDF化する

フォルダー内の複数の画像ファイルを一つのPDFファイルにまとめる手順について説明します。
本記事では、Pythonを使用して簡単に実現する方法を紹介します。

ソースコード

import os
from PIL import Image
import img2pdf
import tkinter as tk
from tkinter import filedialog

def select_folder():
    root = tk.Tk()
    root.withdraw()
    folder_path = filedialog.askdirectory()
    return folder_path

def convert_images_to_pdf(folder_path):
    if not folder_path:
        print("フォルダーが選択されていません。")
        return
    
    images = []
    for file_name in os.listdir(folder_path):
        if file_name.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif')):
            file_path = os.path.join(folder_path, file_name)
            images.append(file_path)
    
    if not images:
        print("フォルダー内に画像ファイルが見つかりませんでした。")
        return

    folder_name = os.path.basename(folder_path)
    pdf_path = os.path.join(folder_path, f"{folder_name}.pdf")
    with open(pdf_path, "wb") as f:
        f.write(img2pdf.convert(images))
    
    print(f"PDFが作成されました: {pdf_path}")

if __name__ == "__main__":
    folder_path = select_folder()
    convert_images_to_pdf(folder_path)

Pythonの学習進め方

Pythonでできることは多岐に渡ります。

Pythonでできること
  • 機械学習・人工知能
  • データ解析・統計分析
  • ファイル操作・システム管理
  • GUIアプリ開発

Pythonは強力で柔軟なプログラミング言語ですが、常に情報がアップデートされるので、
新しいライブラリやフレームワークを独学で学び続けることは困難です。

Udemyは動画で目的に応じた講座を受講できるのでレベルを合わせて学習できます。
購入した講座は再生・停止・スキップなどが可能なオンデマンド形式なので、
専門的な内容を自分のペースで独学できます。

Udemyの特徴
  • プロのエンジニアによる講習が受けられる
  • 自分のペースで学習を進められる
  • オンデマンド形式だから何度でも視聴可能
  • 不満足なコースは視聴していても返金可能返金ポリシー

Pythonでデータサイエンスや人工知能、GUIを学びたい人はUdemy学習を取り入れましょう。
数多くある講座の中から特におすすめな講座を5つ紹介します。

Pythonをインストールから環境設定、基本文法が学習できる。さらに、モジュールの使い方やファイル操作の他に暗号化、並列化、インフラ自動化、キューイングシステム、非同期処理についても学べます。

Pythonの基礎を押さえつつ、人口知能やニューラルネットワーク、機械学習を取り扱う。機械学習ライブラリで文字認識や株価分析などを行う。

データサイエンティストになるために必要なツールについて学ぶことができる。統計分析、NumpyやPandasなどを使ったPythonのプログラミング、機械学習の実装、ディープラーニングの実装を学習できる。

PythonでGUIを作成する方法を取り扱う。Tkinterの発展的な操作まで学習できる。翻訳アプリ、家計簿アプリ、電卓アプリ、音楽再生アプリなど作成して、exeファイル化する。

解説

ユーザーが選択したフォルダー内の画像ファイルをPDFファイルに変換します。

  • ライブラリ

「os」:ファイルやディレクトリの操作を行うために使用します。
「PIL」:Python Imaging Libraryで、画像の操作や変換を行います。
「img2pdf」:画像ファイルをPDFに変換します。
「tkinter」:GUIを作成し、フォルダー選択ダイアログを表示します。

  • 変換する画像フォルダーを選択する

select_folder関数は、ユーザーにフォルダーを選択させ、そのパスを返します。
tk.Tk()でGUIのルートウィンドウを作成し、root.withdraw()で非表示にした後、filedialog.askdirectory()を使用してフォルダー選択ダイアログを表示します。

  • 画像ファイルの収集とPDFの作成

convert_images_to_pdf関数は、選択されたフォルダー内の画像ファイルを収集し、PDFに変換します。

フォルダーが選択されていない場合やフォルダー内に画像ファイルがない場合は、
エラーメッセージを表示します。

次に、画像ファイルのパスをリストに追加します。
各ファイル名が画像の拡張子(.png, .jpg, .jpeg, .tiff, .bmp, .gif)のいずれかで終わる場合、
そのファイルのパスを取得します。

最後に、img2pdf.convertを使用してPDFを作成し、指定されたパスに保存します。

実演

スクリプトを実行すると、フォルダー選択ダイアログが表示されます。
変換したい画像が含まれるフォルダーを選択します。

スクリプトは選択されたフォルダー内の画像ファイルを収集し、一つのPDFファイルに変換します。
変換されたPDFファイルがフォルダー内に保存されます。

まとめ

このスクリプトを使用することで、フォルダー内の画像ファイルを簡単にPDFに変換できます。
PDFにすることで、ファイル管理や共有が簡単になり、様々なデバイスで一貫した表示が可能です。Pythonのライブラリを活用することで、画像処理やファイル操作が効率的に行えます。

この記事を書いた人

プロフィール

アリッシア

                 

大学4年間で何か胸を張れるスキルを身に着けたくて当サイト運営を始めました。
現在、大学院に進学するか就職するか迷いながら勉強しています。
詳しいプロフィールはこちら

Contact icon

contact

X icon

X

Instagram icon

Instagram

Note icon

Note

スポンサーリンク
Python
フォローする
タイトルとURLをコピーしました