📄

#kintone100日チャレンジ Day051:レジュメ作成の時短に!「PDF一括結合&ダウンロードプラグイン」を作ってみた

に公開

面倒解決エンジニアの森田ユウゴです。

台湾からお届けする「#kintone100日チャレンジ」の35日目。

私のメインで使っているPCは2024年に買ったAsus Zenbook DUOなのですが、
下の画面が割れています。落下の記憶も無いのですがいつのまにか故障。
一方、上画面は使えるので1年以上そのまま使っていました。
ついに修理に…。果たしてどのくらいかかるか。

👉 #kintone100日チャレンジの概要はこちら

本日は、人材紹介業・派遣業の営業担当者向けの「PDF一括結合&ダウンロードプラグイン」を開発しました!

「PDF一括結合&ダウンロードプラグイン」について

🎯 なぜ開発したか?(現場の課題とベネフィット)

  • 現場の「不」: 企業へ候補者を提案する際、kintoneに添付された「推薦状」「履歴書」「職務経歴書」を1つずつローカルにダウンロードし、外部ツールを開いて手作業で結合・並べ替えを行い、さらに「20260504_〇〇様_レジュメ一式.pdf」のようにファイル名をリネームする膨大な手間と、ファイルの取り違えミスが発生していました。
  • 導入後の世界(ベネフィット): kintoneのレコード詳細画面上で、結合したいPDFを選択して順番を整えるだけで、1つのファイルとしてワンクリックでダウンロード可能になります!ファイル名も自動生成されるため、レジュメ作成業務の時間を大幅に削減し、誤送信リスクをゼロに近づけます。

✨ これで出来ること(機能概要)

まずはこちらをご覧ください。

https://youtu.be/WY72KQ-KjDQ

  • 詳細画面での直感的なPDF順序調整: 対象となる添付ファイルフィールドからPDFのみを自動抽出し、画面上で「▲」「▼」ボタンを使って直感的に結合順序を入れ替えることができます。
  • ワンクリック結合&ダウンロード: 外部サーバーを介さず、ブラウザ上で直接PDFを結合し、1つのPDFファイルとして安全にダウンロード処理を実行します。
  • テンプレートによるファイル名の自動付与: アプリID(%APPNO%)やレコードID(%RECORDID%)を組み込んだファイル名テンプレートを設定でき、さらにダウンロード実行時の日付(YYYYMMDD)や時間を末尾に自動付与できます。

課題

現時点では下記のような課題が残っています。

  • 大容量・大量のPDF結合時のブラウザ負荷(メモリ制限)
    今回は手軽さを優先し、ブラウザ上(フロントエンド)のメモリを使用してPDFの結合処理を完結させています。そのため、数十MBを超えるような重いPDFや、大量のファイルを一度に結合しようとすると、ブラウザのメモリが枯渇し画面がクラッシュするリスクがあります。本格的な大規模ファイルの結合が必要な場合は、AWS Lambda等の外部サーバーに処理を逃がすバックエンド連携が必要になります。
  • パスワード保護PDFと他形式ファイルへの非対応
    現在の仕様では、対象ファイルの拡張子が .pdf であるかを判定し、それ以外のファイル(WordやExcelなど)は結合処理の対象外として非活性にしています。また、パスワードで暗号化されたPDFも pdf-lib の読み込みでエラーになるため結合できません。これらを含めたい場合は、「事前のPDF化」と「パスワード解除」の運用ルールを徹底するという技術的な妥協点があります。

さいごに

明日もお楽しみに!

下記のブログもご覧ください!

👉 【#kintone100日連続チャレンジ】AIにkintoneカスタマイズを100%任せたらどこまでいけるか?現役フリーランスの「100 Days of kintone Hacks」始動!
👉 ココナラで「kintone有資格者が導入や運用の相談にのります」サービスを開始します!

タグ:#バイブコーディング #kintone #kintoneユーザーと繋がりたい #kintoneプラグイン #kintoneカスタマイズ #kintone100日チャレンジ

Discussion