ClibPDF 関数とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > ClibPDF 関数の意味・解説 

ClibPDF 関数

導入

ClibPDF により、PDF ドキュメントを PHP により作成可能となります。 ClibPDF の機能と API は、PDFlib に 似ています。この文書とともに、よりライブラリの詳細を説明している ClibPDF のマニュアルも読んでください。
元の ClibPDF および PHP モジュールの多くの関数名は、 PDFlib と同様に同じです。 cpdf_open() 以外の全ての関数は、最初の パラメータとしてドキュメントのハンドルをとります。
現在、このハンドルは内部で使用されていません。これは、 ClibPDF が複数の PDF ドキュメントを同時に作成する機能をサポートして いないためです。実際、これを試みても、結果は期待できません。 マルチスレッド環境での結果を予測することはできません。ClibPDF の 作者によれば、これは将来のリリースで変更されます (これを書いている時点での最新版は 1.10 です)。 もしこの機能が必要なら、pdflib モジュールを使用してください。
ClipPDF (および PDFlib) が優れているのは、 テンポラリファイルを使用せずに pdf ドキュメントを 完全にメモリ上で作成することが可能であることです。 あらかじめ定義された単位長さの座標を渡す機能も有しています (この機能は、PDFlib 関数の pdf_translate() で模擬することも可能です)。
その他の ClibPDF の機能で優れているのは、新規のページのオープン後で あっても任意のページをいつでも修正可能であるという点です。関数 cpdf_set_current_page() により、カレントの ページを離れて、他のページを修正できるようになります。
多くの機能の使用法は非常に容易です。最も困難なのは、おそらく新規に PDF ドキュメントを作成する場合でしょう。次の例が導入の手助けと なるはずです。この例では、ページを 1 つ有するドキュメントを 作成します。このページは、30pt のアウトラインフォントでテキスト "Times-Roman" により書かれます。テキストには下線が引かれます。
注意: この拡張モジュールは » PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.1.0.
注意: 外部の PDF ライブラリを使用しない別のフリーな PDF 作成ツールに ついては、関連する FAQ を参照ください。

要件

ClibPDF 関数を使用するには、ClibPDF パッケージをインストールする 必要があります。ClibPDF は、» FastIO からダウンロード可能ですが、商用で使用する場合には ライセンスを購入する必要があります。 PHP では、cpdflib >= 2 を使用する必要があります。

インストール手順

この関数が動作するには、 --with-cpdflib[=DIR] を指定して PHP をコンパイルする必要があります。DIR は cpdflib をインストールする ディレクトリで、/usr がデフォルトです。 ClibPDF が使用する jpeg ライブラリと tiff ライブラリの場所を指定することも できます。これを行うには、configure にオプション --with-jpeg-dir[=DIR] および --with-tiff-dir[=DIR] を 指定してください。

実行時設定

設定ディレクティブは定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
CPDF_PM_NONE (integer)
CPDF_PM_OUTLINES (integer)
CPDF_PM_THUMBS (integer)
CPDF_PM_FULLSCREEN (integer)
CPDF_PL_SINGLE (integer)
CPDF_PL_1COLUMN (integer)
CPDF_PL_2LCOLUMN (integer)
CPDF_PL_2RCOLUMN (integer)

例 369. 簡単な ClibPDF の例
<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 50);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 50);
cpdf_lineto($cpdf, 740, 330);
cpdf_stroke($cpdf);
cpdf_finalize_page($cpdf, 1);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

pdflib の配布ファイルには、アナログクロックを有する複数ページを 作成するような複雑な例が含まれています。以下に ClipPDF 拡張を使用して この例を PHP に変換したものを示します。
例 370. pdflib 2.0 配布ファイルからの pdfclock の例
<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Analog Clock");
 
while ($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);
 
  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */
 
  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);
 
  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6) {
   cpdf_rotate($pdf, 6.0);
   cpdf_moveto($pdf, $radius, 0.0);
   cpdf_lineto($pdf, $radius-$margin/3, 0.0);
   cpdf_stroke($pdf);
  }
 
  cpdf_restore($pdf);
  cpdf_save($pdf);
 
  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30) {
   cpdf_rotate($pdf, 30.0);
   cpdf_moveto($pdf, $radius, 0.0);
   cpdf_lineto($pdf, $radius-$margin, 0.0);
   cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

参考

PDFlib 拡張モジュールの ドキュメントも参照ください。

目次

cpdf_add_annotation — 注記を追加する
cpdf_add_outline — 現在のページにブックマークを追加する
cpdf_arc — 円弧を描く
cpdf_begin_text — テキストセクションを開始する
cpdf_circle — 円を描く
cpdf_clip — 現在のパスを切り取る
cpdf_close — pdf ドキュメントを閉じる
cpdf_closepath_fill_stroke — パスを閉じ、塗りつぶし、描く
cpdf_closepath_stroke — パスを閉じ、線をパスに沿って描く
cpdf_closepath — パスを閉じる
cpdf_continue_text — 次の行にテキストを出力する
cpdf_curveto — 曲線を描く
cpdf_end_text — テキストセクションを終了する
cpdf_fill_stroke — 現在のパスを塗りつぶし、描く
cpdf_fill — 現在のパスを塗りつぶす
cpdf_finalize_page — ページを終了する
cpdf_finalize — ドキュメントを終了する
cpdf_global_set_document_limits — PDF ドキュメントの制限を設定する
cpdf_import_jpeg — JPEG 画像をオープンする
cpdf_lineto — 線を描く
cpdf_moveto — 現在位置を設定する
cpdf_newpath — 新規パスを開始する
cpdf_open — 新規 pdf ドキュメントをオープンする
cpdf_output_buffer — pdf ドキュメントをメモリバッファに出力する
cpdf_page_init — 新規ページを開始する
cpdf_place_inline_image — 画像をページに置く
cpdf_rect — 矩形を描く
cpdf_restore — 以前に保存した環境を回復させる
cpdf_rlineto — 線を描く
cpdf_rmoveto — 現在位置を設定する
cpdf_rotate_text — テキスト回転角を設定する
cpdf_rotate — 回転を設定する
cpdf_save_to_file — pdf ドキュメントをファイルに書きこむ
cpdf_save — 現在の環境を保存する
cpdf_scale — 倍率を設定する
cpdf_set_action_url — ハイパーリンクを設定する
cpdf_set_char_spacing — 文字間隔を設定する
cpdf_set_creator — pdf ドキュメントの creator フィールドを設定する
cpdf_set_current_page — 現在のページを設定する
cpdf_set_font_directories — 外部フォントを使用した際、検索するディレクトリを設定する
cpdf_set_font_map_file — 外部フォントを使用している場合、フォント名をファイル名変換マップに設定する
cpdf_set_font — フォントの種類とサイズを選択する
cpdf_set_horiz_scaling — テキストの水平方向の倍率を設定する
cpdf_set_keywords — pdf ドキュメントの keywords フィールドを設定する
cpdf_set_leading — テキスト行の間隔を設定する
cpdf_set_page_animation — ページ間の移行時間を設定する
cpdf_set_subject — pdf ドキュメントの subject フィールドを設定する
cpdf_set_text_matrix — テキスト行列を設定する
cpdf_set_text_pos — テキスト位置を設定する
cpdf_set_text_rendering — テキストのレンダリング法を定義する
cpdf_set_text_rise — テキストの高さを設定する
cpdf_set_title — pdf ドキュメントの title フィールドを設定する
cpdf_set_viewer_preferences — ドキュメントのビューワ上での表示方法を設定する
cpdf_set_word_spacing — 単語間の間隔を設定する
cpdf_setdash — 破線のパターンを設定する
cpdf_setflat — flatness を設定する
cpdf_setgray_fill — 塗りつぶし色をグレー値に設定する
cpdf_setgray_stroke — 描画色をグレー値に設定する
cpdf_setgray — 描画、塗りつぶし色をグレー値に設定する
cpdf_setlinecap — linecap パラメータを設定する
cpdf_setlinejoin — linejoin パラメータを設定する
cpdf_setlinewidth — 線幅を設定する
cpdf_setmiterlimit — miter のリミットを設定する
cpdf_setrgbcolor_fill — 塗りつぶし色を RGB カラー値に設定する
cpdf_setrgbcolor_stroke — 描画色を RGB カラー値に設定する
cpdf_setrgbcolor — 描画色および塗りつぶし色を RGB 値に設定する
cpdf_show_xy — 指定位置にテキストを出力する
cpdf_show — 現在位置にテキストを出力する
cpdf_stringwidth — 現在のフォントのテキストの幅を返す
cpdf_stroke — パスに沿って線を描く
cpdf_text — パラメータを元にテキストを出力する
cpdf_translate — 座標系の原点を設定する


このページでは「PHP関数リファレンス」からClibPDF 関数を検索した結果を表示しています。
Weblioに収録されているすべての辞書からClibPDF 関数を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からClibPDF 関数 を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

ClibPDF 関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ClibPDF 関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS