pythonでPDFファイル作成+複数のPDFを結合

Python
スポンサーリンク

今回はpythonを使用して、業務用プログラミングを実施してみようと思います。

内容は、pythonプログラミングを駆使して、大量の画像をpdfファイルに変換して、最後に複数のpdfファイルを1つに結合していきます。

 

1.今回の流れ

今回の流れは、まずディレクトリ内の画像を1つずつpdfファイルに変換した後、変換後のpdfファイルを結合するという流れになります。

下の図はフローのイメージ図になります。

 

2.ソースコード

 

 

3.ソースコード詳細

ライブラリのインポート

まずはライブラリのインポートです。

osモジュールはOSに依存する機能(ディレクトリ移動やファイル名取得など…)を取得するためのモジュール

Pillowモジュールはpythonの画像処理ライブラリの一種

img2pdfモジュールはpythonで画像データをpdfに変換するモジュールです。

PyPDF2モジュールは複数のPDFファイル結合・抽出して結合・PDFファイルをページごとに複数のファイルに分割するモジュール

 

ライブラリをインポートしていない人はpipを使用して、インストールしてください。

 

ファイルパスの指定

pathには、画像が保存されているディレクトリのパスを指定してください。

pdf_pathには、これから画像を保存するディレクトリのパスを指定してください。

ディレクトリの移動はosモジュール機能を使用します。os.chdir()関数の使い方は、

os.chdir(“移動したい相対パス/絶対パス”)

 

ちなみに今回使用する画像とディレクトリを以下に表示します。

 

画像をPDF変換

os.listdir()関数は、指定したディレクトリ内のファイル一覧を取得します。使い方は、

os.listdir(“引数:取得したいファイル名のディレクトリのパスを指定”)

このようにpathで指定したディレクトリ内のファイル名を取得できます。これをfor文を利用して1枚ずつpdfに変換しましょう。

 

img2pdf.convert()関数:画像からPDFへの変換

画像からpdfファイルに変換で注意することは、img2pdf.convert()関数の使い方です。

img2pdf.convert(引数)

引数は必ずバイナリデータか文字データでなければなりません。画像データでもいけません。

 

open()関数は、指定したパスのファイルが存在しなければ、指定したファイルパスで新規にファイルを作成するようになっています。

file = open(引数1:ファイルパス, 引数2:入出力方法)

引数2の入出力方法に関しては、以下の通りです。

 ファイル開く説明
読み込みopen(ファイル名,"rb")ファイルを読み込み用として開く
書き込みopen(ファイル名,"wb")ファイルを書き込み用として開く

 

複数のpdfファイルを結合する

merge = PyPDF2.PdfFileMerger()でクラスのオブジェクトを作成

この関数に作成したpdfファイルを1つずつappend()関数で追加していきます。

最後に、同様にwrite()関数で書き込みをして、終了処理close()を実行してください。

最後の結果を以下に表示します。

 

4.最後に

今回は、大量の画像データをpdfファイルにして結合したい!って思い、なんとかpythonで一連のプログラムをできないかと思い挑戦しました。

皆さんの、業務効率等に繋がればいいと思います。

コメント

タイトルとURLをコピーしました