Home > PHP

FPDFで日本語をPDFファイル化

2010.11.29 18:39
  1. PHPからPDFファイルを生成する(アルファベット)
  2. PHPからPDFファイルを生成する(日本語)
 前述のPDFファイル作成に続いて日本語をPDFで表示する方法です。実際には殆どこっちに需要があって英語表記のみのPDF化は殆ど必要ないですね。というわけで、日本語の扱い方を説明します。

ダウンロードするものは以下の通り

  • fpdf16.zip
  • FPDI-1.4.zip
  • japanese.zip
なのですが、チュートリアルやドキュメント、Sampleなどが結構ごちゃごちゃになって入っていまして、まとめると更にごちゃごちゃしてしまうので、そのままごちゃごちゃのまま1つのフォルダーに入れて必要なものだけrequireして使うといった感じでいいと思います。

FPDFとJapaneseをダウンロード

http://www.fpdf.org/
What is FPDF?のところから、download area is there.という辺りのリンクからダウンロードできます。
一番新しいバージョンのv1.6 (2008-08-03)ZIPという辺りからダウンロード可能。fpdf16.zipをダウンロード。
と同時に、What languages can I use?からJapaneseをクリックしてjapanese.zipをダウンロード。解凍してjapanese.phpとex.phpが出てくる。

FPDIをダウンロード

http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/
FPDI-1.4.zipをダウンロード。必要ないかもしれないけどテンプレートのFPDF_TPL-1.2.zipも一緒にダウンロード

 ダウンロードしたものをすべて解凍して、fpdfみたいな感じのフォルダーに全部まとめて入れちゃう。別々のサイトでそれぞれダウンロードしてこないといけないので非常に面倒。FPDIはJan Slabon氏、FPDFとjapanese.phpはOlivier氏が快くも再配布OKしてくれたので、まとめて一つにしたものをomnioo labからもダウンロードできます。
FPDF [ fpdf16.zip, FPDI-1.4, japanese.zip ] Download
こっちのまとめた方を使うとjapanese.phpをインクルードするだけでOKです。ちなみにこのクラスのマージンの設定ではmarginのbottomが自動で設定されている部分に関してmarginが0になるように設定してあります。使い辛い時は便宜変更してください。
クラスモジュールは基本的に読み込みができればOKなので、パーミッションも644とかそんな感じで。
fpdf [D]
|- filters [D]
|- font [D]
|- templete [D]
|- fpdf.php
|- fpdf_tpl.php
|- fpdi.php
|- fpdi2tcpdf_bridge.php
|- fpdi_pdf_parser.php
|- japanese.php
|- pdf_context.php
`- pdf_parser.php
これを適当な場所に保存しておく。
PHPファイルはこんな風に書きます。呼び出すファイルはjapanese.phpだけで大丈夫です。このファイルはfpdf.php
Sample Demo
<?php
require('fpdf/japanese.php');

$pdf=new PDF_Japanese();
$pdf->AddSJISFont();

$pdf->SetFont('SJIS','',10);
$pdf->SetFontSize(10);

$pdf->Open();
$pdf->AddPage();

$text = <<<EOM
 オツベルときたら大したもんだ。稲扱(いねこき)器械の六台も据(す)えつけて、のんのんのんのんのんのんと、大そろしない音をたててやっている。
長いテキスト。。
EOM;

$pdf->Write(6, $text);
$pdf->Output();

?>
これで一応は表示されるはず。宮沢賢治のオツベルと像はいいですね。
後は日本語ドキュメントを見ていろいろやる。








プロフィール



  • Name :: 山上オサム ♂(39)
  • Hobby :: 武術
  • Work :: Web Designer