PDFの任意の場所に画像を挿入−自動化で実現する業務効率化
JPedalを使用したPDFへの画像自動挿入技術を解説。社内文書への㊙マーク、ドラフトマーク、承認スタンプなど、実用的な例をJavaコード付きで紹介。PDF編集の自動化でセキュリティ強化と業務効率化を実現する方法を提案。

PDFの編集、特に画像の挿入は多くの企業にとって重要な作業です。本記事では、JPedalの最新機能を使用してPDFの任意の場所に画像を自動挿入する方法を紹介します。社内書類のPDFファイルには全て㊙マークを入れるなど、セキュリティ対策にも活用できます。また、校正中のドキュメントへのドラフトマーク追加や承認済み注文書への承認スタンプ挿入など、実用的な例をJavaのサンプルコードと共に解説。PDF編集の自動化による業務効率化とセキュリティ強化の実現方法をご覧ください。
この機能を利用すると、社内書類のPDFファイルには全て㊙マークを入れるなど、セキュリティ対策を強化できます。さらに、校正中のドキュメントに、ドラフトであるといったマークを全ページに挿入したり、注文書であれば、承認されたことを示す承認済みの画像を挿入することができます。このブログでは、これらの実用的な利用例として、校正中のドキュメントへのドラフトマーク挿入、取引先との注文書への承認マーク挿入などを、実際のプログラム例と合わせて解説しています。
校正中や作成中のPDFドキュメントにドラフトマークを挿入する
作成途中や校正中のドキュメントをPDFで配布する場合、配布しているドキュメントが「最終のものではない」ということをしっかりと伝えておかないと間違った情報が伝わってしまう可能性があります。そのような間違いを起こさないために、配布時にシステムでドラフトであると言った画像を差し込んで解決できます。
この例では、以下の画像のようにドキュメント左上にドラフトマークの画像を差し込んでいます。

DRAFT-logo.png
用意するのは差し込む画像とPDFドキュメント(document.pdf)です。画像はPNGファイルで、背景は透過させています。xとyで画像の配置座標を指定します。
final WritableAnnotation[] annotations = new WritableAnnotation[1];
final BufferedImage bi = JDeli.read(new File("Draft/DRAFT-logo.png"));
final int x = 15, y = 785;
annotations[0] = new ImageAnnotation(0, x, y, x + bi.getWidth() / 2.0f, y + bi.getHeight() / 2.0f, bi);
AnnotationWriter.writeAnnotations(new File("Draft/document.pdf"), new File("Draft/document-STAMPED.pdf"), annotations);画像の左下隅は(x0, y0)、右上隅は(x1, y1)となり、画像はこれらの境界に収まるようにスケーリングされます。元のファイル(document.pdf)から画像を配置した新規ファイル(document-STAMPED.pdf)に書き出されます。
プログラムで発注書のPDFに承認のマークを挿入する
発注書が承認されたかどうか、発注書のPDFに承認後、承認マークをプログラムで挿入することで、発注書が承認済みかどうかを確認できます。一般的には作成した発注書を印刷し、承認者への承認印を押し、再度スキャンしてPDF化、発注済みのPDFとして保管というデジタル処理とアナログ処理が混じって効率的に処理できません。
JPedalを利用することで、これらの処理をプログラムで実行しシステムでの業務フローを実現できます。

Approved-logo.png
用意するのは差し込む画像とPDFドキュメント(document.pdf)です。画像はPNGファイルで、背景は透過させています。xとyで画像の配置座標を指定します。
こちらの例でも前述の例と同様、承認マークの画像を用意するだけです。配置が前述と違いますので、final int x = 15, y = 785となります。
final WritableAnnotation[] annotations = new WritableAnnotation[1];
final BufferedImage bi = JDeli.read(new File("Approved/Approved-logo.png"));
final int x = 15, y = 785;
annotations[0] = new ImageAnnotation(0, x, y, x + bi.getWidth() / 2.0f, y + bi.getHeight() / 2.0f, bi);
AnnotationWriter.writeAnnotations(new File("Approved/purchase-order.pdf"), new File("Approved/purchase-order-STAMPED.pdf"), annotations);JPedalは様々なアノテーション(注釈)に対応します
さあ、いかがでしょうか?アイデア次第で、様々な業務フローシステムで利用できるかと思います。JPedalではこれらの画像の他にも円形、正方形、線、ポリゴン、テキスト、リンクなどがプログラムで実行でき、JPedalのGUIのビューアを使えば、加えてインク(手書き)、ポリライン(指定した点をつないで線を描く)、ハイライト、テキスト、フリーテキストなどのアノテーション(注釈)を追加できます。
JPedalのJavaビューワ画面

※注釈タブの上に表示されているのは、異なる注釈タイプを作成できる10個のボタンです。この下には、ファイルに存在する注釈を表示するリストがあります。
JPedalは製品と同じ機能を無料でトライアルできます。下記のリンクボタンからぜひトライアルをしてみてください。

開発者向けPDF入門ガイド
PDFの仕様や活用方法など、開発者に必要な情報をコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDFのポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。

