【業務活用】PythonでPDF連結

【業務活用】PythonでPDF連結

業務でadobe社のAcrobatを使っている方が多いと思います。しかしながら、いろいろな理由で持てず、PDFの連結に困っている方もいるかと思います。このサイトを運営している私の職場でもAcrobatを持てず、連結に困っている方がいます。今回は 誰でも利用できるように実行ファイル作成までしたいと思います。

I think many people use Acrobat of adobe for business. However, there may be some people who are having trouble connecting PDFs because they cannot have them for various reasons. Even at my workplace where I run this site, there are people who don’t have Acrobat and have trouble connecting. This time, I would like to create an executable file so that anyone can use it.

PDF連結化

下記見てみるとわかると思いますが、たった9行で完成できてしまいます。

As you can see below, it only takes 9 lines to complete.

import os
import PyPDF4

path = './targetPDF'
merger = PyPDF4.PdfFileMerger()
for file in os.listdir(path):
    merger.append(path+"/"+file)

merger.write('merged.pdf')
merger.close()
input("completed successfully!!")

コードの詳細

ファイル・ディレクトリの一覧を取得

pdf連結する上で、pdfが保存されているディレクトリの中身を確認しなければなりません。 以下のディレクトリ構造の一覧を取得します。

List File Directories

pdf In order to concatenate, you have to check the contents of the directory where the pdf is stored. Get the following list of directory structures:.

 └── targetPDF
     ├── filename01.pdf
     └── filename02.pdf

sample code

import os
    
path = './targetPDF'
list1 = os.listdir(path)
print(list1)

Result

['filename01.pdf', 'filename02.pdf']
Advertisement

PyPDF4で連結

PDFの連携には、PyPDF4モジュールを用いました。PyPDF4についてはPyPDF4をforkしたものになります。PyPDFの詳細についてはGitHubを参考にしていただければと思います。

Concatenate with PyPDF4

We used the PyPDF4 module for PDF integration. For PyPDF4, this is the forked version of PyPDF4. More information on PyPDF can be found on GitHub.

https://github.com/claird/PyPDF4

実行ファイル化

最後に配布用に実行ファイル化を行います。実行ファイル化については、前回の記事を参考にしていただければと思います。

Finally, run the executable for distribution. Please refer to the previous article on making it an executable file.

pyinstaller pythonファイル名 --onefile

上記コードを入力することで、実行ファイルが作成されます。

By entering the above code, an executable file is created.

【追加】pdfのみ読み込む

pdf結合のみ読み込む場合、拡張子をpdfのみ選択する必要があります。もしpdf以外の場合、スキップするコードを追加しました。

If you want to import only pdf bindings, you need to select only pdf extensions. Added code to skip if not pdf.

import os
import PyPDF4

path = './targetPDF'
merger = PyPDF4.PdfFileMerger()
for file in os.listdir(path):
    if '.pdf' in file:
        merger.append(path+"/"+file)
        print(file + ':' + 'Import Complete')
    else:
        print(file + ':' + 'Import Failed')

merger.write('merged.pdf')
merger.close()
input("completed successfully!!")

Pythonカテゴリの最新記事