Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python】PythonでPdfWriterを使ってPDFファイルを分割する方法

 

複数ページのPDFファイルを分割していくつかのファイルに分けたいような要望はかなり頻繁に発生します。

今回は、PythonのPdfWriterを使ってPDFファイルを簡単に分割する方法を紹介します。

 

必要なライブラリのインストール


まず、PyPDF2ライブラリをインストールします。このライブラリはPDFの読み書きやマージに役立ちます。

 

コマンドプロンプトにて以下を実行します。

 

pip install pypdf2

 

 

簡単なマージ例

 

簡単なマージ例として、実行するPythonファイルと同じフォルダ内にPDFファイルを入れておいてフォルダ内にある全PDFファイルの中でページ数が4のファイルだけを分割するような場合のコードは以下のようになります。

 

import PyPDF2
import glob
from pypdf import PdfWriter

merger = PdfWriter()

for pdf in glob.glob('*.pdf'):
    # f = 'merged2.pdf' #分割したいPDF
    page_sep = 2 #何ページごとに分割したいか

    #pdfのページ数を把握する
    reader = PyPDF2.PdfReader(pdf)
    page_num = len(reader.pages)

    # 4ページのファイルだけ実行
    if page_num == 4:
        #ページの抽出とファイル名に使う数字を派生させforで回す
        for page in range(0, page_num, page_sep):
            merger = PyPDF2.PdfMerger()
            start = page
            end = start + page_sep
            merger.append(pdf, pages=(start,end))
            file_name = str(start) + '.pdf'
            merger.write(file_name)
          merger.close

 

5行目のfor文で同じフォルダ内のすべてのPDFファイルを洗い出しています。

分割数を2として、ページ数が4のファイルだけを抜き出して分割しています。

 

分割した先頭ページ番号をファイル名としていますので、たとえば、0,1ページ目のファイルには「0.pdf」というファイル名がついて保存されます。

 

以上が、PythonでdfWriterを使ってPDFファイルをマージする方法になります。

 

関連記事:

【Python】Python仮想環境を別PCに移設する方法 - Django Girls and Boys 備忘録

 

【Python】Pythonで仮想環境を構築する手順 - Django Girls and Boys 備忘録

 

【Python 仮想環境構築】OneDriveに仮想環境を構築する方法 - Django Girls and Boys 備忘録

 

【Python PyTorch】WindowsでGPU(CUDA)を認識しない時に 「AssertionError: Torch not compiled with CUDA enabled 」というエラーが発生した時の対応方法 - Django Girls and Boys 備忘録

 

【Python】subprocess.Popen()を使ったプロセスの並列起動について - Django Girls and Boys 備忘録

 

【Python】exeファイルを実行する方法:subprocess.run()を使った簡単な手順 - Django Girls and Boys 備忘録

 

【Visual Studio Code】ターミナル画面で 「インポート ***** を解決できませんでした」というエラーが表示される場合の対応方法 - Django Girls and Boys 備忘録

 

プログラミング初心者に最適な一冊:『いちばんやさしいGit&GitHubの教本 第2版』 - Django Girls and Boys 備忘録

 

【Python】フォルダ内にあるファイル名を抽出する方法 - Django Girls and Boys 備忘録

 

【Python】キーの同時押し、連続操作などの実施方法 - Django Girls and Boys 備忘録

 

【Python】PythonでPdfWriterを使ってPDFファイルを分割する方法 - Django Girls and Boys 備忘録