PDFlib HOWTO - ライセンスキーの指定方法

$Id: setup_licensekey.html,v 1.9 2009-01-15 07:33:41 cz Exp $

<< PDFlib HOWTO に戻る

目次

プログラム中で指定する場合

直接ライセンスキーを指定する場合

日本語マニュアルの「0 PDFlib ライセンスキーの適用」にある通り、license パラメタを指定してライセンスキーを設定するだけです。

$p = PDF_new();
PDF_set_parameter($p, "license", "L999999-999999-999999");

直接ライセンスファイルを指定する場合

licensefile パラメタを指定してライセンスファイルを設定します。

$p = PDF_new();
PDF_set_parameter($p, "licensefile", "/usr/local/lib/pdflib_license.txt");

/usr/local/lib/pdflib_license.txt の中身は下記です。2CPU以上の機器で使用するためにライセンスキーが複数個ある場合には上記のライセンスキーをプログラム中で直接指定する方法では設定できないため、必ずライセンスファイルで指定する必要があります。

PDFlib license file 1.0
# Licensing information for PDFlib GmbH products
# 先頭が「#」の行はコメントなので、何を書いても大丈夫です。
# 下記は 6.x.x の形であれば、6.0.2 だろうが 6.0.9 だろうが通ります。
PDFlib 6.0.1 L999999-999999-999999
PDFlib 6.0.1 L000000-000000-000000

▲目次

環境変数で指定する場合

注意:環境変数で設定する場合、Apache 等パッケージのアップデートにより起動スクリプト等が入れ替えられてしまい、急に「www.pdflib.com」のロゴが表示される(ライセンスキーが設定されていない)というトラブルが考えられますので、プログラム中でライセンスキーもしくはライセンスファイルを設定することをお薦めします。

直接ライセンスキーを指定する場合

以前は環境変数 PDFLIBSERIAL に直接ライセンスキーを指定できたはずですが、現在はマニュアルにも記載が無く、また指定しても無視されるようです。

直接ライセンスファイルを指定する場合

環境変数 PDFLIBLICENSEFILE にライセンスファイルの場所を指定するだけです。通常のプログラム言語の場合は問題無いでしょうが、Apache の場合にどのように設定すればよいのか疑問の人が多いようです。シェルとプロセス、環境変数の関係は別途適当な Unix 関係の書籍を参照して頂くとして、簡単な設定方法は Apache の起動スクリプトに追加してしまう方法です。下記に代表的な例を挙げます。

なお tomcat の場合には Apache で環境変数を設定してもしょうがないので、tomcat/bin/tomcat.sh の適当な場所で下記のように環境変数を設定します。

export PDFLIBLICENSEFILE=/usr/local/lib/pdflib_license.txt

Apache の環境変数設定方法

Redhat 系

/etc/init.d/httpd の適当な場所に追加します。

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=/usr/sbin/httpd
prog=httpd
RETVAL=0

export PDFLIBLICENSEFILE=/usr/local/lib/pdflib_license.txt

Debian 系(Woody)

/etc/init.d/apache

NAME=apache
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/apache
SUEXEC=/usr/lib/apache/suexec
PIDFILE=/var/run/$NAME.pid
CONF=/etc/apache/httpd.conf
APACHECTL=/usr/sbin/apachectl
export PDFLIBLICENSEFILE=/usr/local/lib/pdflib_license.txt

Debian 系(Sarge Apache2)

/etc/init.d/apache2

#!/bin/sh -e
#
# apache2               This init.d script is used to start apache2.
#                       It basically just calls apache2ctl.

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin PDFLIBLICENSEFILE=/usr/local/lib/pdflib_license.txt

ソースファイル(1.3.33)

$PREFIX/bin/apachectl

# |||||||||||||||||||| START CONFIGURATION SECTION  ||||||||||||||||||||
# --------------------                              --------------------
#
# the path to your PID file
PIDFILE=/usr/local/apache/logs/httpd.pid

export PDFLIBLICENSEFILE=/usr/local/lib/pdflib_license.txt

ソースファイル(2.0.54)

$PREFIX/bin/envvars
export PDFLIBLICENSEFILE=/usr/local/lib/pdflib_license.txt

▲目次

Windows 版 PHP での注意点

カレントディレクトリについて

Windows 版 PHP では、PHP 側の制限により拡張モジュールに対しては、実行する PHP スクリプトのパスとは無関係にApache をインストールしたディレクトリがカレントディレクトリになります。つまり、純粋に PHP プログラミングの世界では PHP スクリプトの場所がカレントディレクトリとなりますが、PDFlib 等拡張モジュールのカレントディレクトリは常に固定値となります。

そのため、ライセンスファイルへのパスを指定する時には下記のように絶対パスで指定する必要があります(相対パスの場合、"htdocs/licensefile.txt" かな?)。

PDF_set_parameter($p, "licensefile", "C:\Program Files\Apache Group\Apache2\htdocs\licensefile.txt");

▲目次

更新履歴

2006/03/13tomcat での環境変数設定方法を追記
2005/08/23初期リリース

<< PDFlib HOWTO に戻る

▲目次