フォルダー内の画像をPDF化する。
画像ファイルを一つのPDFにまとめることは、
プロジェクトやレポート、プレゼンテーションなどで非常に便利です。
特に、複数の画像ファイルを整理し、一つのファイルとして共有したい場合に役立ちます。
本記事では、Pythonを使ってフォルダー内の画像ファイルを簡単にPDFに変換する方法を紹介します。
- 複数の画像ファイルを一つにまとめたい
- 画像をPDFに変換する方法を探している
- プロジェクトやレポートに画像を一括で取り込みたい
ConoHaWing開設方法|アリッシア
技術ブログを書くべき理由|アリッシア
画像をPDF化するメリット
画像をPDF化することで、複数の画像ファイルを一つにまとめることができます。
これにより、ファイル管理が容易になり、共有や印刷が簡単になります。
また、PDFは広くサポートされているフォーマットであり、
PCやiPad、スマートフォンなど異なるデバイスやプラットフォームでも一貫した表示が可能です。
さらに、PDFファイルはセキュリティ機能も備えており、
パスワード保護や編集制限を設定することができます。
PDF化するモジュール
画像をPDFにするモジュールは、「img2pdf」、「FPDF」などがあります。
img2pdf | FPDF | |
使いやすさ | 非常に簡単 | 少し難しい |
変換速度 | 高速 | 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)
ブログを運営するメリット
プログラマーがブログを運営するメリットは沢山あります。
エンジニアはブログを運営するべき理由|アリッシア
- アウトプットによるスキル向上
- メモ帳代わり
- ポートフォリオ(案件獲得)
ブログを始めるためには、「テーマ」・「ドメイン」・「サーバー」の3つが必要です。
3つはブログ運営の基盤となる要素ですが、これら全て自分で用意しなければいけません。
面倒で難しくブログ開設を断念してしまう人が多いです。
ConoHa Wingの「WordPressかんたんセットアップ」は
最短10分で契約可能!
ConoHa WINGから契約をすれば、独自ドメイン、サーバーの用意、WordPressとの連携も簡単にできます。
さらに、2つの独自ドメインが永久無料の特典もあり、
月660円からの破格価格にもかかわらず、表示速度は国内最速です。
解説
ユーザーが選択したフォルダー内の画像ファイルを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のライブラリを活用することで、画像処理やファイル操作が効率的に行えます。