【PDFLib】PDFLibをmac上のLAMP環境で試してみた

研究
Mohammad Danish at Pexels
この記事は約8分で読めます。

さて諸般の事情で、PDFLibとPHPによる電子署名を試してみることにしました。

PDFlib 日本語公式サイト

今回の変更は日本におけるPDFlib製品の販売、サポートのさらなる強化をを目的としており、長期的なお客様の満足向上につながるものと考えております。購入手続きの変更などをお客様にお願いするケースもあり大変恐縮ですが、変更によるご不便についてはできるだけ減らすよう努力していく所存です。なにとぞご理解賜るようお願い申し上げます。

PLOP 5 (PLOP / PLOP DS) ダウンロード | PDFlib 日本語公式サイト

PLOPとPLOP DSは、要件の異なる製品ですが、PLOP のバイナリファイルには PLOP と PLOP DS の両方の機能が含まれており、設定するライセンスキーにより製品(使用できる機能)が決まります。また、PLOP 5からPLOP DS 5へのアップグレードはできないこととなりました。 ※ PLOP 4ライセンスをお持ちのお客様はPLOP 5に、PLOP DS 4のライセンスをお持ちのお客様はPLOP DS 5に、割引価格でアップデートすることができます。 PLOP は、PDF 文書の修繕、リニアライズ、最適化および暗号化/復号化が出来ます。 PLOP DS は、PLOP の機能に加え、PDF文書にデジタル署名を付与する事が出来ます。 動作するシステム要件の詳細についてはPLOP 5 system requirementsをご参照ください。 PLOP のアーカイブファイルには下記のものが同梱されています。 PLOP コマンドラインプログラム 各言語用の PLOP ライブラリ PLOP のドキュメント サポートされている全ての言語用のサンプル PLOP 5, PLOP DS 5の動作環境については PLOP/PLOP DS 5 system requirements

電子署名を行うのには

  • PDFLib
  • PLOP および PLOP DS

これらの3製品を使います。
そして、PLOPの方が2019/12/11現在PHP7.2まで対応しているので、すべての作業にかかる前にPHPのバージョンを合わせておきます。

PDFLib

PDFLibは、ここから所定のプラットフォームのアーカイブをダウンロード。

PDFlib / PDFlib+PDI / PPS 9 のダウンロード | PDFlib 日本語公式サイト

PDFlib 9ファミリのマイナーリリースであるPDFlib 9.3.0がリリースされました。(2020/7 リリース) 詳細な更新内容は、パッケージ内のdocフォルダにあるchanges.txtとcompatibility.txtをご覧ください。 PDFlib 9.3.0 は、新規購入のお客様はもちろんのこと、保守契約のもとにあるお客様がお使いになれるもので、PDFlib, PDFlib+PDI, PPS 9ファミリで、本バージョン以前のライセンスキーをお持ちのお客様は、この更新されたパッケージを適用することをお勧めします。 保守契約期間中のお客様で、現在 PDFlib 7/8 のライセンスキーをお持ちの場合、PDFlib 9.3.0 に無償アップデートすることができます。 保守契約期間中のお客様で、現在 PDFlib 9 のライセンスキーをお持ちの場合、ライセンス購入時または保守更新時の最後のライセンス証書に記載されているライセンスキーで、PDFlib 9.3.0 をそのままお使いいただけます。 保守契約中ではないお客様も、有償で PDFlib 9.3.0 にアップデートすることができます。PDFlib 7/8 をお持ちの場合はメジャーアップデート (製品価格の 60%)、PDFlib 9 をお持ちの場合はマイナーアップデート (製品価格の 20%) で、PDFlib 9.3.0 にアップデートすることができます。 過去のバージョンからの移行については、 PDFlib Migration Guide(英文) をご覧ください。 PDFlib, PDFlib+PDI, PPS は同一のバイナリファイルで提供されており、設定するライセンスキーによりご購入の製品機能を判別します。 ダウンロード後展開したファイル内の bind/言語/readme.txt を参照し、使用しようとしている言語(およびバージョン)に

Macの場合.dmgファイルですが、この中のbindフォルダ配下から該当のバージョンのフォルダの中の php_pdflib.so ファイルをPHPのextensionファイル(/usr/local/lib/php/extensions/ とか)に配置したうえ、php.iniに

extension=/usr/local/lib/php/extensions/php_pdflib.so

とか記述します。

PLOP

PLOPも同様に所定のプラットフォームのアーカイブをダウンロード。

PLOP 5 (PLOP / PLOP DS) ダウンロード | PDFlib 日本語公式サイト

PLOPとPLOP DSは、要件の異なる製品ですが、PLOP のバイナリファイルには PLOP と PLOP DS の両方の機能が含まれており、設定するライセンスキーにより製品(使用できる機能)が決まります。また、PLOP 5からPLOP DS 5へのアップグレードはできないこととなりました。 ※ PLOP 4ライセンスをお持ちのお客様はPLOP 5に、PLOP DS 4のライセンスをお持ちのお客様はPLOP DS 5に、割引価格でアップデートすることができます。 PLOP は、PDF 文書の修繕、リニアライズ、最適化および暗号化/復号化が出来ます。 PLOP DS は、PLOP の機能に加え、PDF文書にデジタル署名を付与する事が出来ます。 動作するシステム要件の詳細についてはPLOP 5 system requirementsをご参照ください。 PLOP のアーカイブファイルには下記のものが同梱されています。 PLOP コマンドラインプログラム 各言語用の PLOP ライブラリ PLOP のドキュメント サポートされている全ての言語用のサンプル PLOP 5, PLOP DS 5の動作環境については PLOP/PLOP DS 5 system requirements

同様にMacの場合.dmgファイルですが、この中のbindフォルダ配下から該当のバージョンのフォルダの中の php_pdflib.so ファイルをPHPのextensionファイル(/usr/local/lib/php/extensions/ とか)に配置したうえ、php.iniに

extension=/usr/local/lib/php/extensions/php_pdflib.so

とか記述します。
ここまで対応してapacheを再起動すると、phpinfoにこの様によしなに記述されるはずです。

phpinfoに記述されない場合は、php7.2なら
・php-720
・php-720-nts
とフォルダ分けがされていると思うので、このntsがついた方を試すと幸せかもです。

電子署名を入れるサンプルはこちら。

PDFlib PLOP DS 入門 – PDF文書に電子署名をする –

PDFlib PLOP は、PDF ファイルのリニアライズ、最適化、修復、分析、暗号/復号化など多様な機能を持つツールです。また上位バージョンである PDFlib PLOP DS は PDF 文書への電子署名 (デジタル署名) 機能を実現します。 ここでは、PLOP DS の機能を用いて PDF ファイルにどのように電子署名を施すかをサンプルプログラムを用いて説明する PLOP DS 入門です。なお、PLOP DS は、コマンドラインツールでも電子署名を施すことが可能です。コマンドラインツールについては マニュアル をご覧ください。 このサンプルプログラムでは、大きく次の点を実現しています。 既存の PDF に電子署名を施す 電子署名を視覚的に表現するためのイメージを表示する 電子署名を行う際、理由や場所といったプロパティを日本語で指定する 出来上がった PDF ファイルをメモリから直接クライアントに返す なお、PDFlib 製品はライセンスを購入する前の状態でも試用版としてすべての機能を試すことができます。 こちらのページ から PLOP をダウンロードし、実際に動作をご確認いただけます。 では、早速サンプルプログラムを見てみましょう。 下記のサンプルでは、 PDFlib 入門1 で作成した PDF ファイル に電子署名を施すサンプルです。署名イメージに使用した PDF は こちら からダウンロードすることができます。( ソースコード (zip)) set_option(“searchpath=$input_dir”); $plop->set_option(“searchpath=$sign_dir”); /* 入力ファイルと署名イメージの PDF を開く */ $doc = $plop->open_document($input, “”); $vis_doc = $plop->open_document($sign_image, “”); /* 電子署名する際のオプションを設定する */ $sign_opts = “engine=builtin ” .

んで今回のオーダーはここから、署名バージョンを重ねないとならないのでした。

このソースを2ファイル作って、後ろのファイルでは既に署名のついたファイルを元ファイルとして読み込み…

よっしゃ。これが tcpdf ではできないんだ。

教訓。お金さえかければなんとかなることもある!w

コメント

タイトルとURLをコピーしました