はじめに
本連載では、PHPでPDFを作成するエクステンションであるHaruについて紹介しています。今回は画像の表示方法、帳票出力時に設定が好ましいプロパティとセキュリティ設定の方法、そして前回紹介した方法も含めて、簡単な帳票出力を通してより実践的な使い方を紹介します。
対象読者
PHPの基本構文を理解している方で、帳票印刷やPDFファイルに興味がある方を対象としています。
必要な環境
この記事では、以下のライブラリを使用しています。
- libharu 2.1
- haru 1.0.4
また、PHP 5.4を使用し、Linuxで動作の確認を行っております。各項目のインストール方法は、前回を参照してください。
画像を表示する
画像を読み出すメソッドは、以下の3つのメソッドを使ってHaruImageオブジェクトを作成します。従って、それ以外のフォーマットの場合には、一度これらのフォーマットにGDライブラリやImageMagickなどを利用してPNGに変換すると、使いやすくなります。
- HaruDoc::loadJPEG ( string $filename )
- HaruDoc::loadPNG ( string $filename [, bool $deferred = false ] )
- HaruDoc::loadRaw ( string $filename , int $width , int $height , int $color_space )
次に、以下のメソッドで画像を表示します。
- HaruPage::drawImage ( object $image , float $x , float $y , float $width , float $height )
$widthや$heightをオリジナルのサイズと異なる値で指定すれば、拡大や縮小を自由にできます。下記リストは以下の図を使ってオリジナルの画像サイズの表示(1)と、半分のサイズで画像を表示(2)、また、倍のサイズで表示(3)しています。
$h = $page->getHeight(); $img = $haru_doc->loadPNG('img/img.png'); $img_size = $img->getSize(); $x = 50; $y = ( $h - $img_size['height']) /5; $page->beginText(); $page->textOut($x, $y*4 + $img_size['height'] + 20, encode("(1) 通常のサイズで表示")); $page->endText(); $page->drawImage($img, $x, $y*4, $img_size['width'], $img_size['height']); // <---- (1) $page->beginText(); $page->textOut($x, $y*3 + $img_size['height'] + 20, encode("(2) 50%のサイズで表示")); $page->endText(); $page->drawImage($img, $x, $y*3, $img_size['width']/2, $img_size['height']/2); // <---- (2) $page->beginText(); $page->textOut($x + 250, $y*4 + $img_size['height'] + 20, encode("(3) 200%のサイズで表示")); $page->endText(); $page->drawImage($img, $x + 250 , $y*4 - $img_size['height'], $img_size['width']*2, $img_size['height']*2); // <---- (3)