てんちょです。最近一日の過ぎ去るスピードが速すぎて曜日感覚を失っています。
日々の業務でPDFファイルを使う機会は非常に多いのですが、現場からは「PDFを結合したい」「ページを並べ替えたい」「ちょっと追記したい」といった要望が数多く寄せられます。これまでは、簡単な結合であれば昔からあるフリーソフトを使ってしのいでもらっていました。
ところが最近、そのフリーソフトが起動しなくなるトラブルが出始めました。どうやら動作基盤である「.NET Framework 3.5」の環境エラーが原因のようです。再インストールを試みても状況は改善せず、いよいよ本格的な代替案を考えざるを得なくなりました。
生成AIに相談してみると、いくつかの代替ソフトを提案してくれましたが、ふと「これならいっそ、生成AI使って作っちゃえばいいのでは?」と思い至りました。
まずは手軽に作れる「HTA(HTMLアプリケーション)」で作成可能かAIに聞いてみたところ、ファイルを選択して結合するだけのシンプルなツールがあっさり完成。動くと欲が出るもので、右半分にプレビュー画面を追加し、さらにファイルをドラッグ&ドロップで追加できるように機能を盛ってみました。しかし、ここでセキュリティソフトが作動。どうもファイルを読み込む挙動が怪しまれたのか、まさかの「マルウェア認定」を受けて動かなくなってしまいました。
HTAでの実装は色々と制限が厳しそうだったため、今度はブラウザ上で動くWebアプリケーションに仕様変更。プレビュー中のページ回転や特定ページの削除機能など、かなり良い感じに仕上がってきました。
ところが、ここで新たな問題が発生します。結合して出力したPDFのファイルサイズが、元の10倍近くまで膨れ上がることが発覚。さらに「簡単に文字を追記できる機能も……」と欲張っていくうちに、HTMLとJavaScriptだけでのPDF操作には限界がある、という結論に達しました。
AIに「別の方法を提案して」と頼んでみたところ、返ってきたのは「Pythonへの移行コード」でした。
「本当にPythonでいいのだろうか」と一瞬頭をよぎりましたが、ここまで来たら突き進むしかありません。
指示されるままに必要なライブラリをインストールし、出力されたコードをコンパイルしてexe化。出来上がったファイルを実行してみると、これまたあっさりと起動してくれました。自分の思い通りにツールが形になっていくのは、やはり楽しいものです。
そこからさらに、ページ番号の追加・削除機能の実装や、リスト上のファイル操作の微調整など、細かいブラッシュアップを重ね、ようやく実務で使えるレベルの「自作PDF編集ツール」ができ上りました。
最初はただの「繋ぎ」のつもりでしたが、ここまでくるとあれこれ機能を追加させて完成させたいですね。

なにより生成AIの進化スピードに驚くばかり。
(投稿者:てんちょ)

「職場に採用されたら謎の機械から勝手に紙が出てきた」の時代が到来しています
Teamsが消える問題は「おま環」とは思いますが、バッチを作って対応中です。