💥 事件発生 — 「コピーできない!?」
平和な作業タイム。それは、ある一行をコピーしようとした瞬間に終わった。
よし、この分厚い業務マニュアルから、大事な手順をメモにコピペして、自分用の早見表を作るぞ〜。
……あれ? テキストを選択できない。右クリックしても「コピー」が反応しない。ドラッグしても、ツルッとすべる。
ぼくこのPDF、コピペできないんだけど!? 200ページもあるのに、ぜんぶ手打ちしろっていうの……?
クロード落ち着いて。まず “なぜコピーできないのか” を切り分けよう。原因がわかれば、たぶん一瞬で終わる話だよ。
🕵 犯人さがし — 真犯人は「暗号化」
PDFがコピーできない理由は、だいたい2パターン。さあ、どっちだ?
容疑者A:画像スキャン
- 紙をスキャンしただけの“画像”
- そもそも文字データが無い
- → 解決にはOCR(文字認識)が必要
容疑者B:コピー制限
- 文字データはちゃんとある
- でも“暗号化”でコピーだけ禁止
- → 制限を外すだけでOK
クロード中身を調べてみたよ。文字はクッキリ埋め込まれてる。これは画像じゃない。……ということは。
ぼく容疑者B……!?
解析の結果は 「encrypted: True」。犯人はコピー制限(暗号化)で確定。しかも開くためのパスワードは“空”——つまり、開けるのにコピーだけ禁止という、いちばん外しやすいタイプだった。
テキスト層はそのまま生きている。なら、やることは決まった。「暗号化のカギを外して、保存し直す」。それだけ。
🛠 作戦会議 — 「一回きり」より「毎回ラク」
1ファイルなら手動でいい。でも、これから何度も出会うはず。だったら——道具を作ろう。
ぼく今回のPDFだけ直してくれればいいよ……いや待てよ。仕事の資料、これからも山ほど来るぞ。
クロードだよね。じゃあドラッグ&ドロップするだけで解放できるバッチにしよう。ファイルでもフォルダでも、放り込めば一括で処理。
作戦は2階建て。頭脳はPython(pypdfで暗号化を解いて保存し直す)、受付はバッチ(.bat)(ドロップされたファイルを受け取ってPythonに渡す)。これで“ダブルクリックで使える道具”になる。
reader = pypdf.PdfReader(src)
if reader.is_encrypted:
reader.decrypt("") # 空パスワードでカギを外す
writer = pypdf.PdfWriter()
for page in reader.pages: # 全ページをそのまま移す
writer.add_page(page)
with open(dst, "wb") as f: # 暗号化“なし”で保存し直す
writer.write(f) # → レイアウトそのまま、コピペ解禁
🐛 文字化け事件 — バッチが日本語で暴走
いざ完成、テスト実行。……変換は成功した。でも、画面に謎のエラーが流れ出した。
バッチに書いた日本語のコメントが文字化けして、Windowsが「そんなコマンドは無い」と怒り出した。変換自体は動いてるのに、画面はエラーだらけ。なんとも締まらない。
ぼくうわっ、なんか英語のエラーがいっぱい出てる! 壊れた!?
クロード大丈夫、変換は成功してる。原因はバッチ内の日本語。文字コードの相性で誤読されてるんだ。だったら——バッチの中身は英語だけにして、日本語のメッセージは全部Python側に逃がそう。
🛡 “再発防止”の設計に切り替え
バッチ本体はASCII(英数字)だけに。利用者に見せる日本語の案内は、文字コードをUTF-8に整えたPython側でまとめて表示。これで「環境によって文字化けする」という事故の芽を、最初から断ち切った。
🎉 完成 — ドラッグ&ドロップで、一発解放
直したバッチを、もう一度テスト。今度はどうだ……?
PDFをバッチのアイコンにポイッとドロップするだけ。元と同じ場所に「○○_コピペ可能.pdf」が誕生。フォルダごと放り込めば、中のPDFをまとめて一括処理。変換済みのファイルは賢くスキップ。
ぼくコピーできた——! しかも見た目は元のまま! もう手打ちしなくていいんだ……!
クロードでしょ。pypdfが無い環境でも、初回に自動でインストールするようにしておいたから、別のPCに渡しても動くよ。
「コピーできない」から、
「ドロップするだけ」へ。
🔬 おまけ — このバッチの“しくみ”
魔法ではありません。やっていることは、意外とシンプルです。
ドラッグ&ドロップされたファイルやフォルダのパスを受け取り、頭脳役のPythonに渡す。Pythonやpypdfが無ければ自動で用意する。
PDFが暗号化されているか確認。「開けるけどコピー制限だけ」のタイプを、空パスワードでそっと解錠する。
全ページを新しいPDFへそのまま移し替え。中身・フォント・レイアウトは一切いじらない。
今度は暗号化なしで保存。これでテキスト選択・コピーが解禁。元ファイルは消さず、別名で残す。
🧠 そもそも「コピー制限」とは?
PDFには、開くためのユーザーパスワードとは別に、印刷やコピーなどの操作を縛る権限パスワード(オーナーパスワード)という仕組みがあります。今回のPDFは、開くカギは掛かっていないのに、コピーだけを禁止する権限制限がかかっていました。だから“開けるのにコピペできない”という、ちょっと不思議な状態だったわけです。
⚠ 使い方のおやくそく。 このツールは、自分が正当に閲覧・利用できる文書を、自分の学習や作業のために扱いやすくするためのものです。今回の題材は、自分の仕事で使うために正規に受け取った資料でした。第三者の著作物を権利者の許可なく再配布したり、利用規約で禁じられた使い方をするのはNG。開くこと自体にパスワードが必要なPDFは、そもそも対象外です(パスワードなしには開けないため)。道具は、正しく・気持ちよく使いましょう。
🌙 教訓 — 「面倒」は、道具にできる
200ページを手打ちする未来は、回避された。残ったのは、ちょっとした学びでした。
📌 この一件で学んだこと
- 「できない」の前に、原因を切り分ける。 画像か、制限か。それだけで打ち手は決まる。
- 一度きりの作業も、繰り返すなら道具にする。 手作業を“ドロップするだけ”に変える価値は大きい。
- 事故は仕組みで防ぐ。 文字化けは「気をつける」ではなく、英語だけのバッチ=設計で断つ。
- AIは、相棒として強い。 原因の切り分けも、コードも、デバッグも、二人三脚だと速い。
このサイト「AI探検隊」は、AIで「Webサイト・音楽・画像」を実際につくって見せる場所です。今回みたいな小さな“自作ツール”も、AIと組めば週末の片手間で生まれます。 「面倒だな」と思った瞬間こそ、道具づくりのチャンス。あなたの“コピーできないPDF”も、きっと解放できます。