0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHP 上級試験範囲 PDFまとめ

Posted at

PDFライブラリ

HaruPDFは、オープンソースの外部ライブラリであるlibHaruを使用してPDFファイルを作成する。
PDFlibは、商用の外部ライブラリであるPDFlibを使用してPDFファイルを作成する。
MPFPDFTCPDFはPDFを作成するクラスライブラリで、スクリプト中にインクルードするだけで使用できる。
この4つのPDFライブラリの中でTCPDFのみ、HTMLをもとにPDFを作成することができる。

MPFPDF

MPFPDFの簡単なPDFドキュメントの作成

MPFPDFライブラリを使用して書いた簡単なPDFドキュメントのコード

php
// MBFPDFライブラリの読み込み
require("../fpdf/mbfpdf.php");

// MBFPDFクラスのインスタンスを生成
$pdf = new MBFPDF();

// マルチバイト対応のフォントを追加登録
$pdf->addMBFont(GOTHIC, 'SJIS');

// ページを追加
$pdf->addPage();

// 出力するフォントを設定
$pdf->setFont(GOTHIC, 'B', 16);

// テキストをドキュメント上に配置
$pdf->cell(40, 10, "Hello!");

// 内容をブラウザに送信
$pdf->output();

MBFPDFのPDFドキュメント作成に使用する座標系について

MBFPDFライブラリを使用したPDFドキュメントの作成は、原点(0,0)から作業が開始される。
PDFドキュメントの原点は、ページ中央ではなくそのページの左上の角。

cell()ln()を使用して、指定した量だけ改行したりすることで、座標を移動することができる。
その際、座標を表す単位には、以下のいずれかを指定できる。

  • インチ
  • ポイント
  • ミリメートル
  • センチメートル

座標を表す単位はMBFPDF()コンストラクタメソッドのオプションに指定する。

MBFPDFでのcell()とln()

cell()

cell()は、ページ上にセル(特定の範囲を表す短形のこと)を描画することができる。
以下、できること。

  • 幅や高さ、枠線を指定することができる。
  • テキストを書き込むことができる。
  • 描画後の改行を指定することができる。

ln()

ln()は、改行を行う。

以下、できること。

  • 座標位置を改行することができる。引数に高さを指定することで指定した量だけ下方向に移動することができる。

  • lnでは、改行を行うためx座標は左マージンの位置(x座標が0)になる。

MBFPDFのコンストラクタについて

MBFPDF()コンストラクタメソッドで指定できるパラメータは以下の3つである。

  • 用紙の方向
  • 座標の単位
  • ページのサイズ

MBFPDFライブラリで使用できるフォントの属性について

setFont()では、フォントの種類とスタイルとサイズを指定することができる。
以下の3種類。

  • 太字(B)
  • 下線(U)
  • 斜体(I)

MBFPDFライブラリで使用できるフォントやテキストについて

MBFPDFライブラリでは、フォント定義ファイルがあれば、任意のフォントを含めることができる。
フォントを追加するにはaddFont()を使用する。
テキストの色を変えるにはsetTextColor()を使用する。テキストの色の指定は、赤、緑、青の3原色をそれぞれ数値で指定するが、2番目、3番目を省略することができる。

MBFPDFライブラリを使用してPDFを作成する際のヘッダやフッタについて

ヘッダやフッタは、MBFPDFクラスを継承したクラスを作成し、header()fooder()をオーバーライドして作成する。
なお、親クラスではheader()やfooter()は、空のメソッドとして定義されている。また、header()やfooter()は、ページ出力を行うoutput()呼び出し時に自動的に呼ばれるため、特に意識する必要はない。
現在のページ番号はpageNow()で参照することができる。
一方、総ページ数については、aliasNbPages()を使用することで、{nb}という文字列が総ページ数に置換される。
{nb}という文字列はaliasNbPages()メソッドを呼び出すことで総ページ数に置換されるため、いつでも総ページ数に置換さっれるわけではない。

MBFPDFライブラリを使用してPDFを作成する際の画像の追加

MBFPDFライブラリで画像ファイルを追加するには、使いたい画像ファイルを用意し、image()メソッドを呼び出すことで、PDFに画像を配置できる。

MBFPFライブラリを使用してPDFを作成する際の内部リンク

MBFPDFライブラリを使用して内部リンクを作成するには、まずaddLink()を呼び出してリンク識別子を取得する。取得したリンク識別子は、リンクの開始位置とリンクの移動先を指定する際に使用する。
リンクの開始位置は、リンク識別子をwrite()image()cell()メソッドの引数のリンク部分に指定することで作成する。作成したPDFではクリックできる部分となる。
一方、リンクの移動先はsetLink()をリンク識別子を指定して呼び出すことにより決定する。移動したいリンク先のページの出力部分でsetLink()を呼び出すことにより、内部リンク先のページが決定する。

MBFPFライブラリを使用してPDFを作成する際の外部リンク

MBFPDFライブラリを使用して外部URLへのリンクを作成するには、write()image()cell()の引数のリンク先の外部URLを文字列として渡す。内部リンクのように識別子は必要ない。

参照

徹底攻略 PHP5 技術者認定 [上級] 試験問題集 [PJ0-200]対応

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?