そのまんま!

LIII. Haru PDF 関数

導入

PECL/haru 拡張モジュールは、Haru Free PDF Library を使用するためのものです。 これは、フリーでクロスプラットフォームであるオープンソースライブラリで、 PDF ファイルを作成するためのものです。

このライブラリは http://libharu.sourceforge.net にあります。

警告

この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

要件

PECL/haru を使用するには、まず libharu をインストールする必要があります。 PECL/haru の動作検証は libharu 2.0.8 で行っています。 これより古いバージョンでは、動作するかもしれませんし、しないかもしれません。 PECL/haru は、PHP 5.1.3 以降でないと動作しません。

インストール手順

この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 http://pecl.php.net/package/haru.

最新の PECL/haru Win32 DLL はこちらからダウンロードできます。 php_haru.dll.

実行時設定

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

例 1. 基本的な PECL/haru の例

<?php

$doc
= new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* サムネイルを表示します */

$page = $doc->addPage(); /* ドキュメントにページを追加します */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* ページを A4 横に設定します */

$courier = $doc->getFont("Courier-Bold"); /* 数行先で、組み込みのフォントを使用します */

$page->setRGBStroke(0, 0, 0); /* 色を設定します */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* 矩形を描画します */

$page->fillStroke(); /* 塗りつぶします */

$page->setDash(array(3, 3), 0); /* このページの破線の形式を設定します */
$page->setFontAndSize($courier, 60); /* フォントとサイズを設定します */

$page->setRGBStroke(0.5, 0.5, 0.1); /* 線の色を設定します */
$page->setRGBFill(1, 1, 1); /* 塗りつぶし色を設定します */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* テキストを塗りつぶし、描画します */

/* テキストを表示します */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* ドキュメントをファイルに保存します */

?>

できあがったドキュメントをお好みの PDF ビューアで開くと、 ライトブルーの矩形と、その中にある白字の "Hello World!" が見られることでしょう。

組み込みのフォントおよびエンコーディング

組み込みフォント

これら 14 種類の基本フォントは PDF に組み込まれており、 すべてのビューアで表示することができます。 これらのフォントを使用すると、出来上がるファイルの大きさを抑えることができ、 高速に処理できます。また外部フォントの読み込みを避けることができます。 しかし、これらのフォントは latin1 文字セットしかサポートしていません。 その他の文字セットを使用する必要がある場合は、外部のフォントを読み込まなければなりません。

基本の 14 フォントは次のとおりです。

  • Courier

  • Courier-Bold

  • Courier-Oblique

  • Courier-BoldOblique

  • Helvetica

  • Helvetica-Bold

  • Helvetica-Oblique

  • Helvetica-BoldOblique

  • Times-Roman

  • Times-Bold

  • Times-Italic

  • Times-BoldItalic

  • Symbol

  • ZapfDingbats

組み込みエンコーディング

表 1. シングルバイト文字セットエンコーディング

名前説明
StandardEncoding PDF のデフォルトエンコーディング。
MacRomanEncoding Mac OS の標準エンコーディング。
WinAnsiEncoding Windows の標準エンコーディング。
FontSpecific フォントの組み込みエンコーディング。
ISO8859-2 Latin2 (東欧)
ISO8859-3 Latin3 (南欧)
ISO8859-4 Latin4 (北欧)
ISO8859-5 キリル文字
ISO8859-6 アラビア語
ISO8859-7 ギリシャ語
ISO8859-8 ヘブライ語
ISO8859-9 Latin5 (トルコ語)
ISO8859-10 Latin6 (北欧)
ISO8859-11 タイ語
ISO8859-13 Latin7 (バルト語)
ISO8859-14 Latin8 (ケルト語)
ISO8859-15 Latin9
ISO8859-16 Latin10
CP1250 MS Windows コードページ 1250。
CP1251 MS Windows コードページ 1251。
CP1252 MS Windows コードページ 1252。
CP1253 MS Windows コードページ 1253。
CP1254 MS Windows コードページ 1254。
CP1255 MS Windows コードページ 1255。
CP1256 MS Windows コードページ 1256。
CP1257 MS Windows コードページ 1257。
CP1258 MS Windows コードページ 1258。
KOI8-R キリル文字セット。

表 2. マルチバイト文字セットエンコーディング

名前説明
GB-EUC-H EUC-CN エンコーディング。
GB-EUC-V GB-EUC-H の縦書き版。
GBK-EUC-H Microsoft コードページ 936 (lfCharSet 0x86) GBK エンコーディング。
GBK-EUC-V GBK-EUC-H の縦書き版。
ETen-B5-H Microsoft コードページ 950 (lfCharSet 0x88) Big Five 文字セット (倚天拡張)。
ETen-B5-V ETen-B5-H の縦書き版。
90ms-RKSJ-H Microsoft コードページ 932, JIS X 0208 文字。
90ms-RKSJ-V 90ms-RKSJ-V の縦書き版。
90msp-RKSJ-H Microsoft コードページ 932, JIS X 0208 文字 (プロポーショナル)。
EUC-H JIS X 0208 文字セット, EUC-JP エンコーディング。
EUC-V EUC-H の縦書き版。
KSC-EUC-H KS X 1001:1992 文字セット, EUC-KR エンコーディング。
KSC-EUC-V KSC-EUC-V の縦書き版。
KSCms-UHC-H Microsoft コードページ (lfCharSet 0x81), KS X 1001:1992 文字セットに 8822 のハングルを追加したもの, Unified Hangul Code (UHC) エンコーディング (プロポーショナル)。
KSCms-UHC-HW-H Microsoft コードページ 949 (lfCharSet 0x81), KS X 1001:1992 文字セットに 8822 のハングルを追加したもの, Unified Hangul Code (UHC) エンコーディング (固定幅)。
KSCms-UHC-HW-V KSCms-UHC-HW-H の縦書き版。
目次
HaruException -- Haru PDF 例外クラス
HaruDoc -- Haru PDF ドキュメントクラス
HaruPage -- Haru PDF ページクラス
HaruFont -- Haru PDF フォントクラス
HaruImage -- Haru PDF 画像クラス
HaruEncoder -- Haru PDF エンコーダクラス
HaruOutline -- Haru PDF アウトラインクラス
HaruAnnotation -- Haru PDF アノテーションクラス
HaruDestination -- Haru PDF 対象クラス
HaruAnnotation::setBorderStyle -- アノテーションの枠の形式を設定する
HaruAnnotation::setHighlightMode -- アノテーションの強調モードを設定する
HaruAnnotation::setIcon -- アノテーションのアイコンの形式を設定する
HaruAnnotation::setOpened -- アノテーションの初期状態を設定する
HaruDestination::setFit -- ページの表示を、ウィンドウにあわせるよう設定する
HaruDestination::setFitB -- ページの表示を、ページのバウンディングボックスをウィンドウにあわせるよう設定する
HaruDestination::setFitBH -- ページの表示を、バウンディングボックスの幅にあわせるよう設定する
HaruDestination::setFitBV -- ページの表示を、バウンディングボックスの高さにあわせるよう設定する
HaruDestination::setFitH -- ページの表示を、ウィンドウの幅にあわせるよう設定する
HaruDestination::setFitR -- ページの表示を、指定した矩形にあわせるよう設定する
HaruDestination::setFitV -- ページの表示を、ウィンドウの高さにあわせるよう設定する
HaruDestination::setXYZ -- ページの表示を設定する
HaruDoc::addPage -- 新しいページをドキュメントに追加する
HaruDoc::addPageLabel -- 指定した範囲のページにおけるページラベルの形式を設定する
HaruDoc::__construct -- 新しい HaruDoc のインスタンスを作成する
HaruDoc::createOutline -- HaruOutline のインスタンスを作成する
HaruDoc::getCurrentEncoder -- ドキュメントが現在使用している HaruEncoder を取得する
HaruDoc::getCurrentPage -- ドキュメントの現在のページを返す
HaruDoc::getEncoder -- 指定したエンコーディングの HaruEncoder のインスタンスを取得する
HaruDoc::getFont -- HaruFont のインスタンスを取得する
HaruDoc::getInfoAttr -- 指定したドキュメント属性の現在の値を取得する
HaruDoc::getPageLayout -- 現在のページレイアウトを取得する
HaruDoc::getPageMode -- 現在のページモードを取得する
HaruDoc::getStreamSize -- 一時ストリームの大きさを取得する
HaruDoc::insertPage -- 指定したページの直前に新しいページを挿入する
HaruDoc::loadJPEG -- JPEG 画像を読み込み、新しい HaruImage のインスタンスを返す
HaruDoc::loadPNG -- PNG 画像を読み込み、HaruImage のインスタンスを返す
HaruDoc::loadRaw -- RAW 画像を読み込み、HaruImage のインスタンスを返す
HaruDoc::loadTTC -- TTC ファイルから指定したインデックスのフォントを読み込む
HaruDoc::loadTTF -- TTF フォントファイルを読み込む
HaruDoc::loadType1 -- Type1 フォントを読み込む
HaruDoc::output -- ドキュメントデータを出力バッファに書き出す
HaruDoc::readFromStream -- データを一時ストリームから読み込む
HaruDoc::resetError -- ドキュメントハンドルのエラーの状態をリセットする
HaruDoc::resetStream -- 一時ストリームを巻き戻す
HaruDoc::save -- ドキュメントを指定したファイルに保存する
HaruDoc::saveToStream -- ドキュメントを一時ストリームに保存する
HaruDoc::setCompressionMode -- ドキュメントの圧縮モードを設定する
HaruDoc::setCurrentEncoder -- ドキュメントの現在のエンコーダを設定する
HaruDoc::setEncryptionMode -- ドキュメントの暗号化モードを設定する
HaruDoc::setInfoAttr -- ドキュメントの情報属性を設定する
HaruDoc::setInfoDateAttr -- ドキュメントの情報属性に日付と時刻を設定する
HaruDoc::setOpenAction -- ドキュメントを開いたときにどのページを表示するかを定義する
HaruDoc::setPageLayout -- ページをどのように表示するかを設定する
HaruDoc::setPageMode -- ドキュメントをどのように表示するかを設定する
HaruDoc::setPagesConfiguration -- ページ群単位のページ数を設定する
HaruDoc::setPassword -- ドキュメントに所有者パスワードおよびユーザパスワードを設定する
HaruDoc::setPermission -- ドキュメントの使用権限を設定する
HaruDoc::useCNSEncodings -- 簡体字中国語エンコーディングを有効にする
HaruDoc::useCNSFonts -- 組み込みの簡体字中国語フォントを有効にする
HaruDoc::useCNTEncodings -- 繁体字中国語エンコーディングを有効にする
HaruDoc::useCNTFonts -- 組み込みの繁体字中国語フォントを有効にする
HaruDoc::useJPEncodings -- 日本語エンコーディングを有効にする
HaruDoc::useJPFonts -- 組み込みの日本語フォントを有効にする
HaruDoc::useKREncodings -- 韓国/朝鮮語エンコーディングを有効にする
HaruDoc::useKRFonts -- 組み込みの韓国/朝鮮語フォントを有効にする
HaruEncoder::getByteType -- テキスト内のバイトの型を取得する
HaruEncoder::getType -- エンコーダの型を取得する
HaruEncoder::getUnicode -- 指定した文字を unicode に変換する
HaruEncoder::getWritingMode -- エンコーダの書き込みモードを取得する
HaruFont::getAscent -- フォントの垂直 ascent を取得する
HaruFont::getCapHeight -- 大文字のベースラインからの距離を取得する
HaruFont::getDescent -- フォントの垂直 descent を取得する
HaruFont::getEncodingName -- エンコーディング名を取得する
HaruFont::getFontName -- フォント名を取得する
HaruFont::getTextWidth -- テキスト全体の幅、文字数、単語数および空白の数を取得する
HaruFont::getUnicodeWidth -- フォントの文字の幅を取得する
HaruFont::getXHeight -- 小文字のベースラインからの距離を取得する
HaruFont::measureText -- 指定した幅に収めることのできる文字数を計算する
HaruImage::getBitsPerComponent -- 画像の各色コンポーネントで使用するビット数を取得する
HaruImage::getColorSpace -- 色空間の名前を取得する
HaruImage::getHeight -- 画像の高さを取得する
HaruImage::getSize -- 画像の大きさを取得する
HaruImage::getWidth -- 画像の幅を取得する
HaruImage::setColorMask -- 画像の色マスクを設定する
HaruImage::setMaskImage -- 画像マスクを設定する
HaruOutline::setDestination -- アウトラインの対象を設定する
HaruOutline::setOpened -- アウトラインの初期状態を設定する
HaruPage::arc -- 現在のパスに弧を追加する
HaruPage::beginText -- テキストオブジェクトを開始し、テキストの現在位置を (0,0) に設定する
HaruPage::circle -- 現在のパスに円を追加する
HaruPage::closePath -- 現在の位置からパスの開始位置に直線を追加する
HaruPage::concat -- 現在のページの変換行列と指定した行列を連結する
HaruPage::createDestination -- 新しい HaruDestination のインスタンスを作成する
HaruPage::createLinkAnnotation -- 新しい HaruAnnotation のインスタンスを作成する
HaruPage::createTextAnnotation -- 新しい HaruAnnotation のインスタンスを作成する
HaruPage::createURLAnnotation -- 新しい HaruAnnotation のインスタンスを作成する
HaruPage::curveTo2 -- ベジエ曲線を現在のパスに追加する
HaruPage::curveTo3 -- ベジエ曲線を現在のパスに追加する
HaruPage::curveTo -- ベジエ曲線を現在のパスに追加する
HaruPage::drawImage -- 画像をページに表示する
HaruPage::ellipse -- 楕円を現在のパスに追加する
HaruPage::endPath -- 塗りつぶしや描画を行わずに現在のパスオブジェクトを終了する
HaruPage::endText -- 現在のテキストオブジェクトを終了する
HaruPage::eofill -- 奇偶規則を使用して現在のパスを塗りつぶす
HaruPage::eoFillStroke -- 奇偶規則を使用して現在のパスを塗りつぶす
HaruPage::fill -- ノンゼロワインディング規則を使用して現在のパスを塗りつぶす
HaruPage::fillStroke -- ノンゼロワインディング規則を使用して現在のパスを塗りつぶす
HaruPage::getCharSpace -- 現在の文字間隔を取得する
HaruPage::getCMYKFill -- 現在の塗りつぶし色を取得する
HaruPage::getCMYKStroke -- 現在の描画色を取得する
HaruPage::getCurrentFont -- 現在使用中のフォントを取得する
HaruPage::getCurrentFontSize -- 現在のフォントのサイズを取得する
HaruPage::getCurrentPos -- パスの描画用の現在の位置を取得する
HaruPage::getCurrentTextPos -- テキストの印字用の現在の位置を取得する
HaruPage::getDash -- 現在の破線のパターンを取得する
HaruPage::getFillingColorSpace -- 現在の塗りつぶしの色空間を取得する
HaruPage::getFlatness -- ページの平坦度を取得する
HaruPage::getGMode -- 現在のグラフィックスモードを取得する
HaruPage::getGrayFill -- 現在の塗りつぶし色を取得する
HaruPage::getGrayStroke -- 現在の描画色を取得する
HaruPage::getHeight -- ページの高さを取得する
HaruPage::getHorizontalScaling -- 現在の水平方向の拡大率を取得する
HaruPage::getLineCap -- 現在のパスの終端の形式を取得する
HaruPage::getLineJoin -- 現在のパスの角の形式を取得する
HaruPage::getLineWidth -- 現在の線幅を取得する
HaruPage::getMiterLimit -- マイターリミットの値を取得する
HaruPage::getRGBFill -- 現在の塗りつぶし色を取得する
HaruPage::getRGBStroke -- 現在の描画色を取得する
HaruPage::getStrokingColorSpace -- 現在の描画の色空間を取得する
HaruPage::getTextLeading -- 現在の行間隔の値を取得する
HaruPage::getTextMatrix -- そのページの現在のテキスト変換行列を取得する
HaruPage::getTextRenderingMode -- 現在のテキストのレンダリングモードを取得する
HaruPage::getTextRise -- 現在のテキストライズの値を取得する
HaruPage::getTextWidth -- 現在のフォントサイズ、文字エンコーディングおよび単語間隔を使用してテキストの幅を取得する
HaruPage::getTransMatrix -- そのページの現在の変換行列を取得する
HaruPage::getWidth -- ページの幅を取得する
HaruPage::getWordSpace -- 現在の単語間隔の値を取得する
HaruPage::lineTo -- 現在位置から指定した位置まで直線を描画する
HaruPage::measureText -- 指定した幅の中に配置できる文字の数を計算する
HaruPage::moveTextPos -- テキストの位置を、指定したオフセットに移動する
HaruPage::moveTo -- 新しい描画パスの開始位置を設定する
HaruPage::moveToNextLine -- テキストの位置を次の行の行頭に移動する
HaruPage::rectangle -- 現在のパスに矩形を追加する
HaruPage::setCharSpace -- ページの文字間隔を設定する
HaruPage::setCMYKFill -- ページの塗りつぶし色を設定する
HaruPage::setCMYKStroke -- ページの描画色を設定する
HaruPage::setDash -- ページの破線パターンを設定する
HaruPage::setFlatness -- ページの平坦度を設定する
HaruPage::setFontAndSize -- ページのフォントおよびフォントサイズを設定する
HaruPage::setGrayFill -- ページの塗りつぶし色を設定する
HaruPage::setGrayStroke -- ページの描画色を設定する
HaruPage::setHeight -- ページの高さを設定する
HaruPage::setHorizontalScaling -- ページの横方向の拡大率を設定する
HaruPage::setLineCap -- パスの終端の形式を設定する
HaruPage::setLineJoin -- そのページのパスの角の形式を設定する
HaruPage::setLineWidth -- ページの線幅を設定する
HaruPage::setMiterLimit -- ページのマイターリミットの現在値を設定する
HaruPage::setRGBFill -- ページの塗りつぶし色を設定する
HaruPage::setRGBStroke -- ページの描画色を設定する
HaruPage::setRotate -- ページの回転角度を設定する
HaruPage::setSize -- ページのサイズおよび方向を設定する
HaruPage::setSlideShow -- ページの移動方式を設定する
HaruPage::setTextLeading -- ページのテキストリーディング (行間隔) を設定する
HaruPage::setTextMatrix -- そのページの現在のテキスト変換行列を設定する
HaruPage::setTextRenderingMode -- そのページの現在のテキストのレンダリングモードを設定する
HaruPage::setTextRise -- 現在のテキストライズの値を設定する
HaruPage::setWidth -- ページの幅を設定する
HaruPage::setWordSpace -- ページの単語間隔を設定する
HaruPage::showText -- ページの現在位置にテキストを表示する
HaruPage::showTextNextLine -- 現在位置を次の行の行頭に移動してテキストを表示する
HaruPage::stroke -- 現在のパスを描画する
HaruPage::textOut -- テキストを指定した位置に表示する
HaruPage::textRect -- 指定した領域内にテキストを表示する