\"), " . "a system environment variable or (for Windows only) a registry " . "key. " . "See the source code for a detailed description. " . "See also chapter 0 in the PDFlib Tutorial for detailed " . "documentation about the licensing mechanism."; try { $p = new PDFlib(); $p->set_option("searchpath={" . $searchpath . "}"); /* --- 1番目の方法: --- * * --- 実行時にライセンスキーを適用する--- */ /* * ライセンスキーを「license」オプションで指定します。 * これは、 PDFlib オブジェクトを "new pdflib()" でインスタンス化 * した直後に実行する必要があります。 * 以下の関数で、"0" をライセンスキーに置き換えます。 */ $p->set_option("license=0"); /* Windowsの場合、ライセンスキーは以下のレジストリキーに設定する * こともできます。 * バージョン9.0.0 の場合 * / HKEY_LOCAL_MACHINE\SOFTWARE\PDFlib\PDFlib\9.0.0 /* (Windows COM .NET インストーラを使用している場合は、PDFlib 製品のインス * トール時にライセンスキーを設定することができます。) */ /* 有効な PDFlib ライセンスキーをインストールすると、PDI 機能は試用できなくなります。 * * 製品のライセンスキーをすでにインストールしているときは、下記の通りライセンス * キーを"0"(ゼロ)に置き換えることで、上位の製品クラスの機能を評価用として * 使用することができます。 * * $p->set_option("license=0"); * * これにより、以前は無効だった機能が有効になり全てのページでデモスタンプが * 再有効化されます。これは、PDFlib+PDI と PPS にも適用されます。 */ /* --- 2番目の方法: --- * * --- ライセンスキーをライセンスファイルで設定 --- */ /* ライセンスキーをテキストファイルに以下の形式に従って入力します。 * (PDFlib のパッケージに含まれているライセンスファイルのテンプレート * "licensekeys.txt" を使用してください) */ PDFlib license file 1.0 # Licensing information for PDFlib GmbH products PDFlib /* "PDFlib" はそれぞれ、PDFlib、PDFlib+PDI、PPS を示します。 * は PDFlib のバージョン番号(9.0.0 等)、 * はライセンスキーです。 * ライセンスファイルには、複数の PDFlib のライセンスキーが * 含まれている場合があります。複数のライセンスキーを別々の行に * 書くこともできます。 */ /* ライセンスキーをライセンスファイル(licensekeys.txt)に追加した後、 * そのファイルを PDFlib が検索するデフォルトの場所のいずれかに置くか * (PDFlib チュートリアルの「ファイル検索パス」を参照)、 * または以下のいずれかの方法でライセンスファイルを PDFlib に通知してください */ $p->set_option("licensefile=path/to/licensekeys.txt"); /* または、 環境変数 PDFLIBLICENSEFILE にライセンスファイルを指し示すよう * 設定します。 * Windowsの場合、システムのコントロールパネルを開き * 「システム」→「詳細設定」→「環境変数」→「システム変数」を選択します。 * Unixの場合は、以下のようなコマンドを実行してください。 */ export PDFLIBLICENSEFILE=/path/to/licensekeys.txt */ /* Windows では、ライセンスファイルの名前を次のレジストリキーに入力 * することもできます。 HKLM\Software\PDFlib\PDFLIBLICENSEFILE */ /* load_font()などの戻り値を確認する */ $p->set_option("errorpolicy=return"); /* 最初のドキュメントを開始する。デフォルトでは、有効なライセンスキーが * 見つからない場合、すべてのページにデモスタンプが押されます。 */ if ($p->begin_document("", "") == 0) throw new Exception("Error: " . $p->get_errmsg()); $p->set_info("Creator", "PDFlib Cookbook"); $p->set_info("Title", $title); /* ページを始める */ $p->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $optlist = "fontname=NotoSerif-Bold fontsize=16 fillcolor={gray 0} leading=140%"; $tf = $p->add_textflow(0, $text, $optlist); if ($tf == 0) throw new Exception("Error: " . $p->get_errmsg()); $p->fit_textflow($tf, 50, 200, 400, 600, "fitmethod=auto"); $p->end_page_ext(""); $p->end_document(""); $buf = $p->get_buffer(); $len = strlen($buf); header("Content-type: application/pdf"); header("Content-Length: $len"); header("Content-Disposition: inline; filename=license_key.pdf"); print $buf; } catch (PDFlibException $e){ print("PDFlib exception occurred:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); exit(1); } catch (Throwable $e) { print($e->getMessage() . "\n"); exit(1); } $p2 = new PDFlib(); try { /* デフォルトでは、有効なライセンスキーが見つからなかった場合、 * 全てのページでデモスタンプが作成されます。 * * しかし、そのような場合に強制的に例外を発生させることもできます。 * これは、ライセンスキーの紛失や無効による問題が発生し、不要な * デモスタンプが作成された場合、直ちに通知されることを勧めるものです。 * * 下記のように、新しいドキュメントを始める前に、「avoiddemostamp」 * オプションを「true」に設定してください。 * 有効なライセンスキーが見つからない場合、例外が発生します。 */ $p2->set_option("avoiddemostamp=true"); /* 新しいドキュメントを始める */ $p2->begin_document("", ""); $p2->begin_page_ext(0, 0, "width=a4.width height=a4.height"); $p2->end_page_ext(""); $p2->end_document(""); } catch (PDFlibException $e) { $text = "\n\nPDFlib exception occurred:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"; fwrite(STDERR, $text); if ($e->get_errnum() == 1994) { $text = "\nThis behaviour is expected since we did not\n" . "supply a valid license key and set the\n" . "\"avoiddemostamp\" option to \"true\"."; fwrite(STDERR, $text); } } catch (Throwable $e) { echo("PHP exception occurred: " . $e->getMessage() . "\n"); exit(1); } $p2 = 0; $p = 0; ?>