【Acrobat Reader DCは不要】PythonでPDFファイルから特定のページを切り出して新しいPDFとして保存する方法

PDFファイルは、電子書籍やドキュメントの共有に広く使われています。一部のPDFファイルには、大量のページが含まれているため、必要なページのみを切り出す必要がある場合があります。そこで、Pythonを使って、PDFファイルから特定のページを切り出し、1つの新しいPDFファイルに保存する方法を紹介します。

先に必要なライブラリをインストールし、全コードを載せて、最後に解説をします。

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

インストールが必要なライブラリは「PyPDF2」と「tkinter」です。

Anacondaの環境を利用する場合

Anacondaの場合、condaコマンドを使用してパッケージをインストールすることができます。

  1. Anaconda Navigatorを開きます。
  2. 左側のメニューから、「Environments」を選択します。
  3. 「Environments」タブで、インストールしたい環境を選択します。
  4. 右側のメニューから、「Not Installed」を選択し、検索バーに「PyPDF2」と入力します。
  5. 「PyPDF2」を選択して、右下の「Apply」をクリックします。これにより、PyPDF2が選択された環境にインストールされます。
  6. 同じ手順で、「tkinter」をインストールします。

もう一つの方法は、condaコマンドを使用することです。

  1. コマンドプロンプトまたはターミナルを開きます。
  2. 以下のコマンドを入力し、PyPDF2をインストールします。
conda install PyPDF2

以下のコマンドを入力し、pillowをインストールします。

conda install tkinter

Anaconda以外の環境を利用する場合

まず、PyPDF2をインストールします。ターミナル(またはコマンドプロンプト)から以下のコマンドを実行します。

pip install PyPDF2

次に、以下のコマンドを実行します。

pip install tkinter

PDFファイルから特定のページを切り出し、新しいPDFファイルに保存

import tkinter as tk
from tkinter import filedialog
import PyPDF2

# ファイル選択ダイアログを表示して、選択されたファイルパスを取得する
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()

start_page = 2
end_page = 4

# 切り出しを行うPDFファイルを開く
with open(file_path, 'rb') as f:
    pdf_reader = PyPDF2.PdfFileReader(f)

    # PDFファイルの特定のページを切り出して新しいPDFファイルに保存
    pdf_writer = PyPDF2.PdfFileWriter()
    for page_num in range(start_page-1, end_page):
        pdf_writer.addPage(pdf_reader.getPage(page_num))

    output_filename = 'output.pdf'
    with open(output_filename, 'wb') as output:
        pdf_writer.write(output)

上記のコードでは、ファイル選択ダイアログを表示して、選択されたファイルパスをfile_pathに代入しています。そして、open()関数でファイルを開く際に、file_pathを指定しています。そのため、ファイル選択ダイアログで選択されたPDFファイルから切り出しを行います。

次に、PyPDF2.PdfFileWriter()を使用して、新しいPDFファイルを作成しています。forループを使用して、特定のページを選択して新しいPDFファイルに追加しています。最後に、with open()を使用して、新しいPDFファイルを保存しています。保存するファイル名は、output_filenameで指定されています。

コード解説

まず、tkinterライブラリを使用して、ファイル選択ダイアログを表示します。これにより、ユーザーはコンピューター内のPDFファイルから、切り出しを行いたいファイルを選択できます。選択されたファイルパスは、filedialog.askopenfilename()を使用して取得します。

次に、選択されたPDFファイルを開き、PyPDF2ライブラリを使用して、特定のページを選択します。PdfFileReader()関数を使用して、PDFファイルを読み込み、ページ数を取得します。その後、PdfFileWriter()関数を使用して、新しいPDFファイルを作成します。forループを使用して、選択された開始ページから終了ページまで、ページを選択して新しいPDFファイルに追加します。最後に、PdfFileWriter()関数を使用して、新しいPDFファイルを保存します。

このスクリプトを実行すると、選択されたPDFファイルから、指定されたページのみが切り出され、新しいPDFファイルに保存されます。この方法を使うと、大量のPDFファイルを扱う必要がある場合に、時間と労力を節約できます。

また、このスクリプトを改良することで、複数のPDFファイルから特定のページを切り出し、1つの新しいPDFファイルに結合することもできます。このような改良を加えることで、より効率的なPDFファイルの管理が可能となります。

PDFファイルを扱うためには、PyPDF2の他にも様々なライブラリがあります。例えば、PDFMiner、ReportLab、PDFtkなどが挙げられます。それぞれに特徴があり、目的に合わせて選択することが重要です。

まとめ

この記事では、Pythonを使用してPDFファイルから特定のページを抽出して、新しいPDFファイルを作成する方法を紹介しました。そのために、PyPDF2ライブラリを使用し、必要なページを特定してから、新しいPDFファイルに保存する方法を示しました。

この方法を使えば、大量のPDFファイルを扱う場合でも簡単に特定のページを抽出し、新しいPDFファイルを作成できます。これは、ビジネス文書、契約書、レポート、学術論文、レシピ、小説など、PDF形式で保存されたあらゆる種類の文書に適用できます。

本記事を参考にすれば、PDFファイルから必要な情報を抽出する作業を自動化し、生産性を向上させることができます。是非、Pythonを使ってPDFファイルの処理を効率化してみてください!

コメント

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