カラーの適用
文字や図形などにカラーを適用して描画したい場合、カラーオブジェクトを作成する必要があります。
カラーオブジェクトの作成方法は4パターンありますが、それらは以下のようになります。
| クラス名 |
色表現 |
引数 |
| Zend_Pdf_Color_GrayScale |
グレイスケール |
(float) 0.0から1.0の間で指定 |
| Zend_Pdf_Color_Rgb |
RGB |
(float) Red, Green, Blue, それぞれの値を0.0から1.0の間で指定 |
| Zend_Pdf_Color_Cmyk |
CMYK |
(float) Cyan, Magenta, Yellow, Key Tone, それぞれの値を0.0から1.0の間で指定 |
| Zend_Pdf_Color_Html |
HTML |
(string) カラーネーム、あるいは16進表記のカラーコード |
カラーを適用するには、Zend_Pdf_PageのsetFillColor()メソッドの引数に、作成したカラーオブジェクトを指定します。
Zend_Pdf-ex9.php (カラーの適用)
<?php
/**
* Zend_Pdf
* カラーの適用
*/
/** Zend_Pdfのロード */
require_once 'Zend/Pdf.php';
/** 生成 */
// Zend_Pdfのインスタンス生成
$pdf = new Zend_Pdf();
// A4サイズのページを作成
$pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
/** 設定 */
// カラーを生成
$colorGrayScale = new Zend_Pdf_Color_GrayScale(0.5);
$colorRgb = new Zend_Pdf_Color_Rgb(0.9, 0.2, 0.7);
$colorCmyk = new Zend_Pdf_Color_Cmyk(1.0, 0.5, 0.0, 0.2);
$colorHtml = new Zend_Pdf_Color_Html('forestgreen');
$colorHtml2 = new Zend_Pdf_Color_Html('#daa520');
// フォントの指定(標準フォント:Helvetica)
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
// フォントを36ptで適用
$pdf->pages[0]->setFont($font, 36);
// 文字列定義
$text = 'Hello World!';
// カラーを適用
$pdf->pages[0]->setFillColor($colorGrayScale);
// 50pt, 750ptの位置にUTF-8で描画
$pdf->pages[0]->drawText($text, 50, 750, 'UTF-8');
// カラーを適用
$pdf->pages[0]->setFillColor($colorRgb);
// 50pt, 700ptの位置にUTF-8で描画
$pdf->pages[0]->drawText($text, 50, 700, 'UTF-8');
$pdf->pages[0]->setFillColor($colorCmyk);
$pdf->pages[0]->drawText($text, 50, 650, 'UTF-8');
$pdf->pages[0]->setFillColor($colorHtml);
$pdf->pages[0]->drawText($text, 50, 600, 'UTF-8');
$pdf->pages[0]->setFillColor($colorHtml2);
$pdf->pages[0]->drawText($text, 50, 550, 'UTF-8');
/** 出力 */
// HTTPヘッダ:PDFを出力
header('Content-type: application/pdf');
// HTTPヘッダ:ファイル名をhello_world.pdfに
header('Content-Disposition: attachment; filename="hello_world.pdf"');
// ドキュメントを出力
echo $pdf->render();
Zend_Pdf-ex9.phpを実行し、保存後、ビューアーで表示