PDF表示の導入

今回はPHPでPDFを出力するという実装を行います。

既存のテンプレートを活用し、そこに必要な文字を入れていくことでソースコードをシンプルに保つことが出来ます。

そこで既存のPDFをテンプレートとして読み込むことができ、且つ無償で活用できるライブラリとして、TCPDF、FPDIの組み合わせを紹介したいと思います。

 

  1. テンプレートとなるPDFを作成するPDFの読み込みを行うFPDIは無償導入の場合、5以上のファイルを読み込めません。PDF1.4以下の圧縮形式で作成する必要がります。

また、PHP上からの文字配置する場合、座標を使用するため、illustratorなどのソフトで作成したほうが効率がいいです。

  1. TCPDFをダウンロードします。ドキュメントなどが必要でなければ tcpdf_min_* を選択してください。

ダウンロードしたファイルは解凍して、PHPのinclude_path上に tcpdf というフォルダ名で配置しました。

以下はサンプルソースになります。

<?php

require_once ‘tcpdf.php’;

$pdf = new TCPDF(“L”, “mm”, “A4”, true, “UTF-8” );

$pdf->setPrintHeader(false);

$pdf->setPrintFooter(false);

$pdf->AddPage();

$pdf->SetFont(‘kozminproregular’, ”, 12);

$pdf->Text( 10, 10, “初めてのTCPDF” );

$pdf->Output(“test.pdf”, “I”);

?>

細かい設定は(http://www.t-net.ne.jp/~cyfis/tcpdf/)ここで確認してください

  1. FPDIをダウンロードします

ダウンロードしたファイルは解凍して、TCPDFを配置した tcpdf フォルダ内に配置します。

  1. テンプレートになるPDFをダウンロード

https://s3-ap-northeast-1.amazonaws.com/s3-ten-navi.com-wpimg/hacks/wordpress/wp-content/uploads/2015/06/resume_light1.pdf

ダウンロードしたファイルはtcpdf フォルダ内に配置します。

<?php

require_once(‘tcpdf/tcpdf.php’);

require_once(‘tcpdf/fpdi/fpdi.php’);

class exPDF extends FPDI

{

}

$pdf =& new exPDF();

$pdf->setPrintHeader(false);

$pdf->setPrintFooter(false);

$pdf->AddPage();

$pdf->setSourceFile(‘tcpdf/Invoice.pdf’);

$iIndex = $pdf->importPage(1);

$pdf->useTemplate($iIndex);

$pdf->SetFont(‘kozgopromedium’, ”, 10);

$pdf->Text( 160, 36, “2017/02/01” );

$pdf->SetFont(‘kozminproregular’, ”, 20);

$pdf->Text( 30, 50, “サンプル太郎 様” );

$pdf->Output(‘sample.pdf’, ‘I’);

?>

 

以下のように、表示できると思います。

座標位置を正確に指定することで、適宜な箇所に文字を当て込んでいきましょう。

以上で、PHPでPDFを出力するという実装の紹介を終わります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です