SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ライセンス制限が緩く高速でPDFを作成可能なPHPライブラリ「Haru」

PHP::Haruで簡単なPDF帳票を作成する

ライセンス制限が緩く高速でPDFを作成可能なPHPライブラリ「Haru」(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

 PHPでPDFを作成する方法としてHaruを紹介します。後編では、前編で紹介できなかった画像の表示方法や、PDFのセキュリティ設定の基本と、これまでの例で示したものを使って簡単な帳票作成方法を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 本連載では、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)しています。

オリジナル画像
オリジナル画像
画像の表示(code_8.phpの一部)
$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)
実行結果
実行結果

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
プロパティを設定する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ライセンス制限が緩く高速でPDFを作成可能なPHPライブラリ「Haru」連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7218 2013/06/28 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング