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という名前で保存します。
📁 動かすときの注意点
- 同じフォルダに
sample.pdfというPDFを用意しておいてください。 - 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を「分割」するには?
→ PdfReaderとPdfWriterでページを選んで保存!
✅ PDFを「結合」するには?
→ PdfMergerを使えば、何枚でも好きな順で合体できる!
✅ PDFを「暗号化」するには?
→ encrypt("パスワード")で安全にロック!
✅ よくあるエラーにもちゃんと対処法がある!
🧠 PDF操作はこんな場面で大活躍!
- 毎月の帳票をまとめる業務
- 社外秘の資料にパスワードをかける
- 学校のプリントを整えてPDFで提出 など…
手作業でやっていたことが、Pythonを使えば一瞬で自動化できちゃいます。
まさに“プログラミングで生活がちょっと便利になる”って感じですね😊

「難しそう…」と思うかもしれませんが、今回紹介したコードをコピペして少しずつ試すだけでもOKです。
ぜひ、自分の手でコードを動かして、“できた!”という体験をしてみてください✨
よくある質問(Q&A)
- QPDFのページ数を事前に調べる方法はありますか?
- A
はい、簡単にできます!
以下のコードでページ数を確認できます👇from pypdf import PdfReader
reader = PdfReader("sample.pdf")
print(len(reader.pages)) # ページ数を表示
- QPDFを画像(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の商品ページをご確認ください。