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 — 座標系の原点を設定する

「ClibPDF 関数」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


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

辞書ショートカット

すべての辞書の索引

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

   

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



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

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS