PDF
PDF の出力

注意事項

毎回の授業の最初に出席メールを提出せよ.

前回までの出席記録課題と提出状況 を確認せよ.

教科書のサンプルコード(英語版)は以下のリンクからダウンロードできる プログラミングPHP第2版(オライリー) 「関連ファイル」から「サンプルコード(原著)」 をダウンロードし,展開して保存せよ.

10 章 PDF

PDF 用のライブラリを使うことで PDF 書類を作成し,出力することができる.

10.1 PDF 用の拡張モジュール

授業用サーバでは FPDF ライブラリとその日本語対応版 MBFPDF が導入済み.

ただし,10 章の例すべてにおいて
require("../fpdf/mbfpdf.php"); の行を
require("/usr/share/php/fpdf/mbfpdf.php");
に書き換えなければならない.

また,授業用サーバで使用できる 日本語フォントは GOTHIC, PGOTHIC, UIGOTHIC, MINCHO, PMINCHO なので必要に応じて書き換える必要がある.

10.2 ドキュメントとページ

実習
ダウンロードした英語版サンプルコードの 10_1.php が英語版の例 10-1 である. require 行,フォント設定,内容の文字列等を 書き換え,日本語版 10-1 に書き換え,テスト実行せよ.

基本的な流れは以下の通り.

  1. new MBFPDF() でインスタンスを作成
  2. AddMBfont() でフォントを登録
  3. AddPage() でページを作る
  4. SetFont() でフォントを指定しながら Cell() でテキスト配置することを 繰り返す
  5. テキストの配置が終れば最後に Output() で出力

10.3 テキスト

直接任意の座標を指定して文字列を配置するのではなく, 基本的に上から順に配置してゆく. 画面上をカーソルが動いているとイメージするとわかりやすい. 最初はカーソルは画面左上にあり, Ln() でカーソルをを進めながら Cell() で現在カーソルがある場所にテキストボックスを配置する. Cell() の第一引数は枠の幅であるが,0 を指定すると幅が 0 ではなく, 右端まで一杯に枠をとることに注意.

実習
ダウンロードした英語版サンプルコードの 10_2.php を日本語版に書き換え,テスト実行せよ.

テキストの属性として,太字,下線,斜体が使える.

実習
ダウンロードした英語版サンプルコードの 10_3.php を日本語版に書き換え,テスト実行せよ.

テキストの色指定は Cell の前に SetTextColor を呼び出して行う.

実習
ダウンロードした英語版サンプルコードの 10_4.php を日本語版に書き換え,テスト実行せよ.

MBFPDF クラスを拡張することで目的にあったクラスを作ることができる. 例 10-5 は MBFPDF では空で定義されている header() と footer() を実装するクラス myPDF を作る例である.

実習
ダウンロードした英語版サンプルコードの 10_5.php を日本語版に書き換え,テスト実行せよ.

Image()で画像を貼付けることもできる.

実習
上で作成した例 10-5 の function Header() 関数を p.272 のものに変更し,テスト実行せよ. 画像が表示されない場合は 最後の Cell() メソッドの第 7 引数を無くしてあるかどうか 確認せよ.

Write は単純にテキストを出力するメソッドである.Cell のように 枠を出力する機能等はない.Write の第1引数は 行の高さ, 第2引数は出力する文字列,第3引数はリンク情報(後述)

外部リンクの作り方は簡単である. Cell, Image, Write 共通で,最後の引数にリンク先の URL を与えればよい. その Cell, Image, Write の出力部分が指定の URL へジャンプするリンクとして 表示される.

内部リンクは次の 3 つの処理が必要である

  1. まず AddLink メソッドで使用可能なリンク識別子を 得る.これが下の 2 つの処理で必要になる.
  2. リンク元の Cell, Image, Write 等の最後の引数に上で得た リンク識別子を与える.
  3. リンク先を SetLink メソッドで設定する.このとき 上で得たリンク識別子を第 1引数として与える.

AddLink さえ最初に行っておけば後の順番は任意である. SetLink の使用法として,リンク先の場所で第1引数としてリンク識別子 だけ与えて SetLink を実行し,「現在のページ」を飛び先に設定する方法, 第 3 引数を設定し,飛び先ページ番号を具体的に与える方法がある.

実習
ダウンロードした英語版サンプルコードの 10_7.php を日本語版に書き換え,テスト実行せよ. ただし,p.275 の下から 12,13 行目の

$connection = mysql_connect("localhost","user","password");
$db = "library";

を実習の環境に合わせて書き換える必要がある.書き換える内容は授業で連絡する.

第 12 回課題「PDF 生成」 を提出せよ.


Updated in July 14, 2009, index.html, Yamamoto Hiroshi