PDF分割ツールやPDF編集ツールを調べて、無料のものを一通り試したけれど、結局「分割した後のリネームやフォルダ振り分けは自分でやるしかない」と感じたことはないでしょうか。アップロードして分割するところまでは簡単なのに、そこから先の仕分け作業が毎回同じように発生して、地味に時間を取られる。そんな経験、基幹システムから出力した請求書や納品書を扱う仕事をしていれば一度はあるのではないでしょうか。
私は情シスとして社内システムの開発を担当しており、営業事務が基幹システムから取得したPDFを、手作業でテキスト編集・リネームしていた業務を見て、Webツールを自作したことがあります。PDFをアップロードするだけで、テキスト編集・ファイルリネーム・フォルダ分割までを一括で終わらせる仕組みです。
この記事では、既製のPDF分割・編集ツールで解決できない部分と、それを自作ツールで自動化した実例、そして運用してみて実際に失敗した点まで紹介します。読み終えた頃には、「自分の業務でもPDF処理を自動化できるか」を判断できる基準が手に入るはずです。
PDF分割ツール・編集ツールだけでは解決できない業務課題
CubePDFやAdobe Acrobat、iLovePDFといった無料のPDF分割・編集ツールは、1ファイルをアップロードして分割・結合する作業自体はとても簡単にできます。ここに不満を感じている人は少ないはずです。
ただ、これらのツールが対応しているのは「分割する」「結合する」というその場限りの作業です。分割した後のファイルを得意先ごとに名前を変えて、所定のフォルダに振り分ける、という一歩先の作業は、結局自分の手でやらなければなりません。これが、業務として繰り返し発生すると地味に効いてくるのです。
私が見ていた現場でも、まさにこの「分割した後」の部分が営業事務の作業時間を食っていました。
基幹システム出力PDFの処理に追われていた現場の課題
私が担当していた会社では、基幹システムから請求書・納品書のPDFを出力し、経理サイトへアップロードする、という業務フローがありました。ここで発生していたのが次の作業です。
- 基幹システムから出力したPDFを1件ずつ開く
- 得意先名や日付など、必要なテキストを編集・追記する
- 得意先ごとにファイル名をリネームする
- 得意先ごとのフォルダに振り分けて保存する
この一連の作業を、営業事務が請求書・納品書あわせて月間20回ほど、1件あたり約3分かけて手作業で行っていました。1件3分は短く見えますが、月20回・さらに担当者が複数いることを考えると、会社全体で見れば決して小さくない時間でした。
情シスとして社内システムの開発を担当していた立場から見ると、「これはツールが解決してくれない領域だ」とすぐに分かりました。既製のPDF編集ツールでは、テキスト編集はできても、得意先ごとのリネームやフォルダ振り分けまでは一括でやってくれません。だからこそ自作する価値があると判断しました。
PDFを一括処理するWebツールを自作した方法
作ったのは、所定のPDFをアップロードすると、テキスト編集・ファイルリネーム・フォルダ分割までを自動で終わらせるWebツールです。流れはシンプルで、次の3ステップにまとめられます。
- PDFをアップロードする
- 各ページを読み取り、得意先ごとに判定・振り分ける
- 必要なテキストを編集し、ファイル名をつけて所定のフォルダへ出力する
処理の中心になっているのは「1つのPDFファイルを各ページ単位で読み取り、ページごとに得意先を判定して振り分ける」という部分です。イメージをつかんでもらうために、考え方の骨格だけ示すと、次のような流れになります。
for page in pdf.pages:
customer = detect_customer(page) # ページ内のテキストから得意先を判定
new_name = build_filename(customer, page) # 得意先名+日付でファイル名を生成
save_to_folder(customer, new_name, page) # 得意先ごとのフォルダへ出力
実際の処理では、得意先判定のルールやテキスト編集の細かい条件がもっと複雑に絡み合っています。ただ本質は「ページを読み取る→判定する→振り分ける」というこの3段階です。ここまで分解できれば、非エンジニアでも「どこを自作すればいいか」のイメージはつかめるはずです。
派生的に、社内で必要なPDFを決まった形式に整えて配布する業務も、同じ仕組みで対応できるようになりました。1つの機能を作っておくと、思っていた以上に使い道が広がるという発見もありました。
自作ツール導入でどう変わったか【結果・数値】
このツールを導入した結果、請求書・納品書の処理は1件あたり約3分かかっていた作業が、約1分まで短縮されました。現在は営業事務の5名がこのツールを使って処理をしています。
時間の短縮そのものよりも大きかったのは、「誰がやっても同じ結果になる」という安心感です。手作業だと、担当者によってリネームのルールが微妙にズレたり、振り分け先のフォルダを間違えたりすることがありましたが、ツール化することでそのブレがなくなりました。
自作して分かった失敗と学び
ここまで聞くと順調に進んだように見えますが、運用してから気づいた失敗もあります。正直に書くと、得意先ごとの処理条件をマスタ化せずに、プログラムの中に直接書き込んでしまったことです。
その結果、得意先が増えたり、処理条件が少し変わったりするたびに、「ちょっと条件を追加してほしい」という依頼が私のところに来るようになってしまいました。本来であれば、得意先ごとの判定条件を設定ファイルやマスタテーブルとして切り出しておけば、現場の担当者自身で調整できる設計にできたはずです。
この経験から学んだのは、「動くツールを作る」ことと「運用し続けられるツールを作る」ことは別の難易度だということです。自作ツールを作るときは、最初から「変更が増えそうな部分」を見極めて、マスタ化・設定化しておくことをおすすめします。
非エンジニアでもPDF処理ツールは自作できるのか
情シスとしてシステム開発を担当している立場から見ても、PDFのテキスト処理や振り分けロジック自体は、特別難しい技術ではありません。PDFを読み込むライブラリと、テキストを判定する条件分岐さえ組めれば、まずは「1種類の得意先だけ処理できる」という最小の範囲から作り始められます。
非エンジニアであっても、「全得意先対応・全業務対応」を最初から目指す必要はありません。まずは自分の業務で一番時間を取られている1パターンだけを自動化してみる、というのが一番の得策です。コードを使った具体的な処理の書き方まで踏み込みたい場合は、PythonでPDFを自動処理する方法をまとめた記事も参考にしてみてください。
まとめ
PDF分割ツールや編集ツールは、単発の作業を楽にはしてくれますが、「分割した後にリネームや振り分けが発生する」という繰り返し業務まではカバーしてくれません。この部分こそ、自分の業務に合わせて自作する価値がある領域です。
実際に基幹システム出力のPDF処理を自動化したことで、1件3分の作業が1分まで減り、社内5名がそのツールを使っています。一方で、処理条件をマスタ化しなかったことで依頼が集中してしまう失敗もありました。これから自作する人は、最初から「変わりやすい条件」を切り出しておく設計を意識してみるのがおすすめです。
関連記事
- PythonでPDFを自動処理するコード集|テキスト抽出・表→Excel・結合・透かし・OCR(コードでもっと踏み込みたい人向け)
- 非エンジニアが業務改善ツールを自作できるようになった理由
- Flask 社内ツール 作り方
「自分の業務でも自動化できそうか判断したい」という人は、まずは関連記事で自作ツールの考え方から確認してみてください。