プログラミング素人でもできる ChatGPTとPythonで作業効率化ツールを作成

校正

「こんなツールがほしい、でも作成を頼める相手がいないし、プログラミングは分からない……」

そんなあなたもChatGPTを使えば自分で効率化ツールが作れるかもしれません。

 

Excelの関数は使えるがプログラミングはほとんど未経験の私が、実際にPythonを使ったプログラムをChatGPTで作成した例をご紹介します。

今回ご紹介するのはPDFにテキストボックスを入れるプログラムです。

 

デジタルに移行したので効率化したい!

とあるカタログ案件で、価格の掲載箇所を把握するために以下のような作業をしていました。

➀カタログ紙面上の価格部分の¥マークをハイライト
➁¥マークがないページには、目立つところに「なし」と書き込む

今までは紙で出力したものに手書きでマーキングや書き込みをしていたのですが、ペーパーレス化しようということでPDF上で一連の作業を完結させることになりました。

 

➀カタログ紙面上の価格部分の¥マークをハイライト

→PDFの検索機能を利用して作業しました。
(これは紙の出力で作業しているときもやっていたので作業手順が確立されていました)

➁¥マークがないページには、目立つところに「なし」と書き込む

→ペーパーレス化にあたりペンタブレットを用意してもらったため、ペンタブを使い書き込みをしていました。

 

しかし、➁の「なし」の書き込みが少し曲者でした。紙とペンタブでは書き味が異なるので、同じ手書きでも紙に書くときより書きづらく、時間もかかります。

そんな状態でどのページでもだいたい同じ位置に入れる「なし」を逐一手書きするのはあまり効率がよくありません。

 

せっかくデジタルで作業しているので、アナログではできない効率化の方法がないか考えました。

「なし」を入れるのは¥マークがないページ=ハイライトがないページです。
この条件があるのならプログラムで処理できるのでは?と思い、ChatGPTにコードを書いてもらうことにしました。

プログラム、作ってもらいました

まず、「ハイライトがないページ」の定位置に「なし」を入れるプログラムを作れるかどうかをChatGPTに聞きました。

これに対してChatGPTはコードを出力してきました。このコードはPDFに「なし」というテキストを各ページの定位置に直接埋め込むものでした。

しかし「なし」の位置調整が必要になった場合、PDFにテキストを埋め込みされると「PDFの編集」(Adobe Acrobatの場合)から調整しなければいけません。

「PDFの編集」は、名前の通りAdobe Acrobat上でPDFの編集ができる機能です。PDF上の要素の移動や追加・削除などができます。

ただしこの場合は「編集ができる」というのがよろしくありません。

「なし」には関係のない、PDFにもともとあった要素を誤って移動したり削除したりしてしまう可能性があるからです。

 

このためAdobe Acrobatの「コメント」のテキストボックスで入れる方法でできないか聞いてみました。

Adobe Acrobatの「コメント」のテキストボックス

テキストボックスであればPDFにもともとある要素を移動したり削除したりする危険がないため、PDFの見た目が変わってしまう心配はありません。

また、「PDFの編集」を開かなくても編集できるため、「なし」の位置も調整しやすくなります。

 

テキストボックスを使う方法もできそうだったので、コードを書いてもらいました。

エラーや細かい条件の追加・修正などを行い、最終的にできたものがこちらです。

実行の流れ

下のようなカタログのPDFがあるとします。(ページは抜粋です)

小さくて見づらいですが、¥マークについているピンク色がハイライトです。

ハイライトはAdobe Acrobatのハイライト機能でつけています。

 

 

 

 

 

このPDFに対して先ほどのプログラムを実行します。

するとコマンドプロンプトやテキストエディタのターミナルなどで「おわったよ!」と表示され、下のようなPDFができます。

プログラムの実行後のコマンドプロンプト

 

ピンクのハイライト=¥マークが紙面にないページのみ、ページ下部に「なし」が入ります。
処理時間は170ページほどのPDFでも一瞬でした。

 

 

 

 

 

「なし」の位置は中央よりやや左寄りになります。これは中央だとカタログの要素にかかってしまうことがあるからです。(例えば上のようにノンブルが中央にあるデザインの場合、「なし」も中央だとノンブルがあるページはすべて「なし」がノンブルに被ってしまいます)

テキストボックスなので位置調整が簡単とはいえ、毎ページ調整をかけるとなると手間と時間がかかります。このため最初から調整頻度が少なくなる位置に入るように設定しました。

 

プログラムの動き自体はほとんど期待した通りのものでした。

ただしテキストボックスのフォントに関してひとつ難点があります。

ChatGPTが言うには、プログラムで使っているPythonライブラリ「PyMuPDF」の標準フォントには日本語対応フォントがないんだそうです。
自分で調べてみたところ日本語に対応しているフォントもあるようです。
(コードの”fontname”の部分を”japan”と指定しましたが、きちんと仕事をしているのかどうかはよく分かりません。
参考にしたのはこちらのサイトです。https://pymupdf.readthedocs.io/ja/latest/font.html
一応日本語もサポートしているフォントが作成されるようなのですが、よく分かりませんでした)
この問題が原因かは分かりませんが、位置調整などのためにテキストボックスを動かすと、環境によってはフォントの見た目が変わることがあります。

プログラムで入れた「なし」はこのようにテキストボックスになっており、位置を移動させることができます。

(私のPCではAdobe Acrobat上で移動させるとフォントの見た目が変わってしまいます……)

まとめ&次回予告

今回はこの案件がペーパーレス化によりアナログからデジタルに移行した初めての回だったため、どの工程でも試行錯誤しながら作業している状態でした。

プログラムで「なし」を入れる方法も作業を進めるなかで考えついたため、実はまだ実作業では使用していません。

何度かテストをして問題がなさそうなことは確認したので、次回から使っていきたいと思います。

 

ChatGPTに作成をお願いしたのはこれだけではありません。

次回は「作ろうとしたけどできなかったExcelの比較ツール」です。

Excel同士なら簡単そうと思ったのですが、Excelだからこそ(?)の障壁がありました。

興味があればご覧いただけると幸いです。