前回、複数のファイルを選択するとき、ダイアログ上で好みの順番でファイルを選択したとしても、ファイル名で自動的にソートされてPDFファイルになるという問題がありました。たとえば「3.jpg、5.jpg、1.jpg、2.jpg」という順番で画像ファイルを選択したとしても、「1.jpg、2.jpg、3.jpg、5.jpg」という順番になってしまいます。

ですが、ファイル名の順番ではなく、自分の選んだ順番でPDFにしたいという要望もあると思います。この問題を解決するために、少しプログラムを改良してみました。

動作

前回同様、プログラムを実行するとファイルを選択するダイアログが表示されます。複数のファイルも選択できます。

「開く」ボタンを押すと以下のようなダイアログが開きます。

ここで「SELECT」というラベルの下にあるファイル名が付いたボタンを自分の好みの順番で押して行ってください。そうすると上の「ORDER」というラベルの下に、選択した順番でファイル名が表示されます。

選択後、Closeボタンを押すと少し間をおいて保存ダイアログが開きますので、PDFファイルを保存してください。

ソースコード

前回から追加したのは、reorder_dialog関数というファイルの順番を選択するダイアログの関数です。ちなみに今回のプログラムで追加した部分は、以下のサイトに書かれていた内容を参考にさせてもらっています。

https://stackoverflow.com/questions/40971023/order-of-file-selection-in-tkinter-is-not-order-in-python-program