全体表示

[ リスト ]

 phpのPDFフリー作成モジュールTCPDFを利用するためのプラグインの利用方法をまとめてみました。日本語もかなり簡単な方法で利用できます。(TCPDFフォルダにttfフォントファイルをphpで利用できるようにするユーティリティが付属しています。)
 xampp/symfonyがインストール済みであるものとします。
 また、プロジェクトフォルダは/home/sfprojects/以下に作成するものとします。

/*symfonyの基本操作部分*/

1 プロジェクトフォルダ作成
  コマンドプロンプトから、
  $ mkdir /home/sfprojects/pdf

2 プロジェクトフォルダに移動
  コマンドプロンプトから、
  $ cd /home/sfprojects/pdf

3 プロジェクトの初期化
  コマンドプロンプトから、
  $ symfony init-project pdf

4 アプリケーションの初期化
  コマンドプロンプトから、
  $ symfony init-app frontend

5 モジュール初期化
  コマンドプロンプトから、
  $ symfony init-module frontend pdf

/*プラグインのインストール*/

6 sfTCPDFPluginインストール
  コマンドプロンプトから、
  $ symfony plugin-install http://plugins.symfony-project.com/sfTCPDFPlugin

/*TCPDFのダウンロード*/

7 TCPDFをダウンロードし展開
  ブラウザから、
  http://www.tecnick.com/public/code/cp-dpage.php?aiocp_dp=tcpdf

8 tcpdfフォルダをコピー
  /home/sfprojects/pdf/plugins/sfTCPDFPlugin/lib/以下にコピー

9 キャッシュクリア
  コマンドプロンプトから、
  $ symfony cc

/*TCPDFで日本語を利用できるようにする*/

10 日本語フォントを入手(例としてIPAのものを利用)
  http://ossipedia.ipa.go.jp/ipafont
   ipagp.ttf(Pゴシック)
   ipam.ttf(明朝)
   ipag.ttf(ゴシック)
   ipagui.ttf(UIゴシック)
   ipamp.ttf(P明朝)
  が入手可能。

11 ttfファイルからufmファイルを作成する。
  tcpdfに付属しているユーティリティtcpdf/fonts/ttf2ufm/ttf2ufm.exeで作成できる。
  適当なttfファイルをユーティリティであるttf2ufm.exeのあるフォルダにコピーする。
  コマンドプロンプトで同階層に移動してから
  $ ttf2ufm –a –F ipag.ttf
  を実行すると、
   ipag.afm
   ipag.t1 a
   ipag.ufm
  ファイルが作成される。

12 次にphpで利用できるファイルに変換する。
  コマンドプロンプトから、
  $ php –q makefontuni.php ipag.ttf myfont.ufm
  を実行すると、
   ipag.php
   ipag.ctg.z
   ipag.z
  の3つのファイルができる。

13 3つのフォントファイルをtcpdf/font/以下に配置
  既に同じ3ファイル(.php/.ctg.z/.z)構成の色々なフォントファイルが配置されているが、日本語がない。
  そこで、先ほど作成した3つのファイルを
   /home/sfprojects/pdf/plugin/sfTCPDFPlugin/lib/tcpdf/font/
  にコピーすることで日本語が利用できるようになる。これだけで良い。

/*symfonyでPDF作成のテストを行う*/

14 テストファイルを作成
  /home/sfprojects/pdf/apps/frontend/modules/actions/action.class.phpに
<?php
class pdfActions extends sfActions
{
public function executeIndex()
{
//$this->forward('default', 'module');
}
/**
* Hello world test
*/
public function executeTest()
{
// pdf object
$pdf = new sfTCPDF();
// settings
$pdf->SetFont("ipag", "", 12);
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
$pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// init pdf doc
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Cell(80, 10, "Hello World !!! & e ? U u いろは薔薇");
// output
$pdf->Output();
return sfView::NONE;
}
}

15 ファイルを実行
  routing.ymlの設定は各自で行ってもらうとして、
   http://localhost/frontend_dev.php/pdf/test
  でアクションモジュール実行。

16 pdfファイルが表示される。

※自分の環境では、なぜかIE7では実行できず、FireFoxでは実行できました。なんか設定が悪いんでしょうなぁ…。
※あと、生成されたPDFファイルのサイズが大きすぎて、はっきりいって使い物にならない…。

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

開く トラックバック(1)


.


みんなの更新記事