スポンサーリンク

PythonでPDFを操作する方法まとめ|分割・結合・暗号化を簡単に自動化しよう!

自動化スクリプト
  1. 1. はじめに|PythonでPDFを操作する理由とは?
  2. 2. 事前準備|必要なライブラリのインストール
    1. ✅ PyPDF2(ぱいぴーでぃーえふつー)
    2. ✅ pypdf(ぱいぴーでぃーえふ)
    3. 📦 ライブラリのインストール方法
    4. ❗補足:エラーが出たときは?
  3. 3. PDFを分割する方法
    1. 🔧 使用するライブラリ:pypdf
    2. ✏️ サンプルコード:1ページだけを抽出する
    3. 💡 ココがポイント!
    4. 📁 動かすときの注意点
    5. ✅ 応用テクニック:複数ページを取り出したいとき
  4. 4. PDFを結合する方法
    1. 🧰 使用するライブラリ:pypdf(PdfMerger)
    2. ✏️ サンプルコード:2つのPDFを1つに結合する
    3. 💡 ココがポイント!
    4. ✅ 応用:たくさんのPDFを一括で結合したいとき
  5. 5. PDFを暗号化する方法
    1. 🧰 使用するライブラリ:pypdf(PdfWriter)
    2. ✏️ サンプルコード:PDFにパスワードをかける
    3. 🔐 パスワード付きPDFを開くには?
    4. ⚠ 注意点
  6. 6. トラブル対処法とよくあるエラー
    1. ❗エラー①:FileNotFoundError
      1. 🧾 内容:
      2. 🛠 原因:
      3. ✅ 解決法:
    2. ❗エラー②:IndexError: list index out of range
      1. 🧾 内容:
      2. 🛠 原因:
      3. ✅ 解決法:
    3. ❗エラー③:PdfReadError(パスワード付きPDF)
      1. 🧾 内容:
      2. 🛠 原因:
      3. ✅ 解決法:
    4. ❗エラー④:PDFが開けない or 壊れてる
      1. 🛠 原因:
      2. ✅ 解決法:
  7. 7. まとめ
    1. 📌 今日のポイントをおさらい!
    2. 🧠 PDF操作はこんな場面で大活躍!
  8. よくある質問(Q&A)
    1. 関連投稿:

1. はじめに|PythonでPDFを操作する理由とは?

こんにちは!
みなさん、PDFファイルって使ったことありますか?

PDFは、学校のプリントや仕事の資料など、いろんな場面で使われているとても便利なファイル形式です。でも、「このページだけ取り出したいな」とか、「いくつかのPDFを1つにまとめたい」と思ったことはありませんか?

ふつうは、PDF編集ソフトを使わないとできませんが、Pythonというプログラミング言語を使えば、なんと自動で! PDFを自由自在に操作できるんです!

しかも、Pythonを使えば…

  • いらないページを削除したり
  • 複数のPDFを1つにまとめたり
  • パスワードをつけて暗号化したり

といった操作が無料で、しかもカンタンにできちゃいます。

たとえばこんなときに便利です:

  • 学校や会社で送られてきたPDFの必要な部分だけを取り出したいとき
  • 年度ごとの書類を1つのPDFにまとめたいとき
  • 他の人に送る前に、パスワードをつけてセキュリティ対策したいとき

この記事では、初心者の方でもわかりやすいように、Pythonを使ったPDFの分割・結合・暗号化のやり方をステップごとに紹介していきます。

パソコン初心者でも大丈夫!
一緒にやってみましょう😊




2. 事前準備|必要なライブラリのインストール

PythonでPDFを操作するには、**専用のライブラリ(道具のようなもの)**をインストールする必要があります。

PDF操作でよく使われるライブラリには、次の2つがあります:

✅ PyPDF2(ぱいぴーでぃーえふつー)

昔から使われているライブラリですが、開発が止まり気味です。

✅ pypdf(ぱいぴーでぃーえふ)

PyPDF2の後継(バージョンアップ版)で、現在はこちらが主流です!

📝 今から始める人には「pypdf」をおすすめします!


📦 ライブラリのインストール方法

Pythonをすでに使える状態なら、ターミナル(またはコマンドプロンプト)にこの1行を入力してください👇

pip install pypdf

うまくいけば、数秒〜数十秒でインストールが完了します!


❗補足:エラーが出たときは?

エラーが出た場合は、Pythonのバージョンや環境が影響していることがあります。以下を確認してみましょう:

  • Pythonは3.7以上がインストールされているか?
  • pipコマンドが正しく使えるか? → pip --versionで確認できます
  • 仮想環境(venv)を使っている場合は、アクティブ化を忘れずに!

これで準備OKです!
次はいよいよ、PDFを分割する方法をやってみましょう📄✂️




3. PDFを分割する方法

ここからは、実際にPythonを使ってPDFの中から必要なページだけを取り出す方法を解説していきます!

たとえば、10ページあるPDFから「1ページ目だけ取り出したい」という場合に使えるテクニックです。


🔧 使用するライブラリ:pypdf

まずは、インストールしておいた pypdf を使っていきます。


✏️ サンプルコード:1ページだけを抽出する

from pypdf import PdfReader, PdfWriter

# 読み込むPDFファイル
reader = PdfReader("sample.pdf")

# 書き出し用のPDFオブジェクトを作る
writer = PdfWriter()

# 最初の1ページ目だけを追加
writer.add_page(reader.pages[0])

# 結果を書き出す
with open("output_page1.pdf", "wb") as f:
writer.write(f)

💡 ココがポイント!

  • PdfReader("sample.pdf") は、対象のPDFファイルを読み込む命令です。
  • reader.pages[0] は、1ページ目(Pythonでは0から数えます!)を指定しています。
  • 最後に output_page1.pdf という名前で保存します。

📁 動かすときの注意点

  1. 同じフォルダに sample.pdf というPDFを用意しておいてください。
  2. PDFのページ数が足りないとエラーになるので、必ず確認しましょう!

✅ 応用テクニック:複数ページを取り出したいとき

もし、1〜3ページ目を抜き出したいときは、こう書きます👇

for i in range(3):  # 0, 1, 2ページを追加
writer.add_page(reader.pages[i])

これで、PDFの「分割(ページ抽出)」はバッチリです!
次は、「複数のPDFを1つにまとめる(結合)」方法を紹介します📚✨




4. PDFを結合する方法

前の章では、PDFから1ページを取り出す「分割」のやり方を学びましたね。
今回はその逆、複数のPDFを1つにまとめる方法を紹介します!

たとえば、次のようなときに便利です:

  • 「A社から来たPDF」「B社から来たPDF」を1つの資料にしたい
  • 月ごとの請求書(PDF)をまとめて年別ファイルにしたい

🧰 使用するライブラリ:pypdf(PdfMerger)

pypdfには、PDFをまとめるための**PdfMerger(マージャー)**という便利なクラスが用意されています。


✏️ サンプルコード:2つのPDFを1つに結合する

from pypdf import PdfMerger

# マージャーを作成
merger = PdfMerger()

# 結合したいPDFを順番に追加
merger.append("file1.pdf")
merger.append("file2.pdf")

# 結合したPDFを書き出す
merger.write("merged.pdf")
merger.close()

💡 ココがポイント!

  • append() を使って、好きな順番でPDFをつなげることができます。
  • 最後に write("merged.pdf") で、新しい1つのPDFとして保存します。

✅ 応用:たくさんのPDFを一括で結合したいとき

もしフォルダ内のすべてのPDFをまとめたいなら、こんなコードも使えます👇

import os
from pypdf import PdfMerger

merger = PdfMerger()

# 同じフォルダにあるすべてのPDFを対象にする
for filename in os.listdir():
if filename.endswith(".pdf"):
merger.append(filename)

merger.write("all_merged.pdf")
merger.close()

⚠ ファイルの順番はアルファベット順になります。順番を変えたい場合はリストで管理しましょう!

これで、PDFを簡単に結合できるようになりました!
次は、PDFにパスワードをつける「暗号化」の方法を解説します🔒




5. PDFを暗号化する方法

さて、ここではPDFにパスワードをかけてセキュリティを強化する方法を紹介します🔒

たとえば…

  • 社外秘の資料をPDFで送るとき
  • テスト問題や請求書など、見られたくない内容が含まれる場合

そんなとき、Pythonで簡単にパスワード付きのPDFが作れちゃいます!


🧰 使用するライブラリ:pypdf(PdfWriter)

ここでも前と同じ pypdf を使います。
PDFにページを追加してから、encrypt() でパスワードを設定するだけ!


✏️ サンプルコード:PDFにパスワードをかける

from pypdf import PdfReader, PdfWriter

# 元のPDFを読み込む
reader = PdfReader("sample.pdf")

# 書き込み用のPDFオブジェクトを作成
writer = PdfWriter()

# すべてのページを追加
for page in reader.pages:
writer.add_page(page)

# パスワードを設定(ここでは "mypassword")
writer.encrypt("mypassword")

# 保存する
with open("protected.pdf", "wb") as f:
writer.write(f)

🔐 パスワード付きPDFを開くには?

普通のPDFビューア(Adobe Acrobatなど)で開こうとすると、パスワードの入力が求められます
ここで mypassword を入力すれば、中身を見ることができます。


⚠ 注意点

  • 元のPDFにすでにパスワードがかかっている場合、そのままでは読み込めません。PdfReader("file.pdf", password="...") のように読み込む必要があります。
  • 暗号化後は、元のPDFと同じファイル名にしないようにしましょう!(上書きに注意)

これで、PDFの暗号化もばっちりです!
ここまでで、PythonでできるPDF操作の基本「分割・結合・暗号化」をマスターしました✨




6. トラブル対処法とよくあるエラー

PythonでPDFを操作していると、うまく動かないこともあります。
ここでは、よくあるエラーとその対処法をまとめてご紹介します!


❗エラー①:FileNotFoundError

🧾 内容:

FileNotFoundError: [Errno 2] No such file or directory: 'sample.pdf'

🛠 原因:

指定したファイルが見つからないときに出るエラーです。

✅ 解決法:

  • ファイル名を間違えていないか確認
  • .pyファイルと同じフォルダにPDFがあるか確認
  • 拡張子(.pdf)がちゃんと付いているか確認

❗エラー②:IndexError: list index out of range

🧾 内容:

writer.add_page(reader.pages[5])  # 6ページ目
IndexError: list index out of range

🛠 原因:

指定したページがPDFに存在しない場合に出るエラーです。

✅ 解決法:

  • PDFが何ページあるかを事前に確認しましょう
  • ページ数を超えないように len(reader.pages) を使って安全に処理するのもアリ!

❗エラー③:PdfReadError(パスワード付きPDF)

🧾 内容:

PdfReadError: File has not been decrypted

🛠 原因:

パスワード付きのPDFを、そのまま読み込もうとした場合に出るエラーです。

✅ 解決法:

パスワードを指定して読み込みましょう👇

reader = PdfReader("protected.pdf", password="mypassword")

❗エラー④:PDFが開けない or 壊れてる

🛠 原因:

  • ファイルが途中で壊れている
  • 書き出し時に何らかのミスがあった

✅ 解決法:

  • 元のPDFを開いて、問題がないか確認する
  • 別のPDFで再度試してみる
  • writer.close()merger.close()の書き忘れがないかチェック!

エラーメッセージはちょっと難しく見えるかもしれませんが、「どこで」「なにが」問題だったのかがちゃんと書いてあります。ひとつずつ読み解いて、焦らずに確認していきましょう👍




7. まとめ

この記事では、Pythonを使ってPDFを自由に操作する方法をわかりやすく紹介してきました。
みなさん、ここまで読んでくださってありがとうございます!


📌 今日のポイントをおさらい!

✅ PDFを「分割」するには?
PdfReaderPdfWriterでページを選んで保存!

✅ PDFを「結合」するには?
PdfMergerを使えば、何枚でも好きな順で合体できる!

✅ PDFを「暗号化」するには?
encrypt("パスワード")で安全にロック!

✅ よくあるエラーにもちゃんと対処法がある!


🧠 PDF操作はこんな場面で大活躍!

  • 毎月の帳票をまとめる業務
  • 社外秘の資料にパスワードをかける
  • 学校のプリントを整えてPDFで提出 など…

手作業でやっていたことが、Pythonを使えば一瞬で自動化できちゃいます。
まさに“プログラミングで生活がちょっと便利になる”って感じですね😊

「難しそう…」と思うかもしれませんが、今回紹介したコードをコピペして少しずつ試すだけでもOKです。
ぜひ、自分の手でコードを動かして、“できた!”という体験をしてみてください✨


よくある質問(Q&A)

Q
PDFのページ数を事前に調べる方法はありますか?
A

はい、簡単にできます!
以下のコードでページ数を確認できます👇

from pypdf import PdfReader

reader = PdfReader("sample.pdf")
print(len(reader.pages)) # ページ数を表示
Q
PDFを画像(PNGやJPEG)に変換することはできますか?
A

はい、可能です。ただし pypdf ではできないので、pdf2imageという別のライブラリを使う必要があります。
例:pip install pdf2image でインストールできます。

Q
パスワード付きのPDFを解除して保存できますか?
A

自分がパスワードを知っている場合は可能です。読み込むときにパスワードを指定し、別名で保存すれば解除できます👇

reader = PdfReader("protected.pdf", password="mypassword")
writer = PdfWriter()

for page in reader.pages:
writer.add_page(page)

with open("unlocked.pdf", "wb") as f:
writer.write(f)

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク