ご注意ください

  • 当ブログのコメントやトラックバックに、アカウントハックサイトや、そのようなサイトへリダイレクト(転送)される可能性が高いサイトへのリンクが時々貼られているようです。
    そのようなサイトへのリンクが貼られたコメント・トラックバックは、見つけ次第削除・禁止ワード登録していますが、今後も危険なサイトへのリンクが貼られる可能性がありますので、安易にリンク先へ飛ばないよう充分ご注意ください。

オンラインゲーム関連

著作権表示

  • 当ブログに記載されている
    会社名・製品名・システム名などは、
    各社の登録商標、もしくは商標です。

    当ブログ上の文章・写真・画像の
    無断転載、無断転用、直リンクなどは
    行わないでください。

    (C) 1998-2014 Vertex.
    (C) 2002-2014 SQUARE ENIX CO., LTD.
    (C) CAPCOM CO., LTD. 2007, 2014

    All Rights Reserved.
無料ブログはココログ

« [FF11] タイダルタリスマン | トップページ | 朝からツイテナイ »

[PHP] TCPDFを入れてみた

PHPを使って携帯電話などからデータを入力し、PCからサイトにアクセスして印刷する、というものを基礎体温管理などで使っていたのですが、やはりWebサイトを印刷させるだけじゃ印刷結果が見栄え悪いし、なにより画面も印刷することを前提としたレイアウトにしないといけないので微妙な感じ。

じゃあ、Webサイトで表示するものとは別に、印刷用にPDF出力させてみよう、と思い立って、早速ライブラリを探してみました。

PDFLibというのが有名らしいけど、これはサーバへインストールが必要らしいので、レンタルサーバで使えないのでパス。FPDFというクラスライブラリを見つけたけど、これは日本語が使えないらしいのでパス。FPDFに日本語を扱える環境を追加するMBFPDFというものがあったけど、UTF-8が扱えないらしいのでパス。

日本語が扱えてUTF-8に対応したものはないかとさらに探してみると、ありました。TCPDF。これもクラスライブラリなので、このクラスを使いたいスクリプトと同じフォルダに入れておけば、そのまま使えるのがヨイ!

ということで、まずはダウンロード。

TCPDF公式サイト

PHP4向けとPHP5向けがありますが、ウチのレンタルサーバはPHP4なのに対し、PCに入れているのはPHP5なので、PHP4をダウンロードして使ってみました。PHP5上でPHP4用のTCPDFを使っても、特に問題はない模様。

ダウンロードしたZIPファイルを展開し、必要なファイルのみPHPスクリプトのフォルダにコピーします。ウチの環境では、以下のファイルをコピーしました。

  • cacheフォルダ
  • configフォルダ
  • fontsフォルダ
  • barcodes.php
  • html_entity_decode_php4.php
  • htmlcolors.php
  • tcpdf.php
  • unicode_data.php

さて、このTCPDFは日本語対応とは言うものの、標準では日本語フォントが入っていないらしいので、日本語フォントをTCPDF用に作らないといけません。とりあえず動作確認用にフリーのTTFフォントを落としてきて、入れてみました。

フォントの作り方はいろんなサイトで紹介されていますが、一応ここでも紹介。TCPDF4.0.02 for PHP4での作成方法です。全てDOSプロンプト(コマンドプロンプト)にて実行。

TTFフォントファイル名を [ font.ttf ]、TCPDFをコピーしたフォルダを [ %TCPDF_ROOT% ] とします。

  1. TTFフォントファイルを [ %TCPDF_ROOT%\fonts\ttf2ufm ] にコピー後、以下を実行。
      > cd %TCPDF_ROOT%\fonts\utils
      > ttf2ufm -a -F font.ttf
    font.afm、font.t1a、font.ufmの3つのファイルが作成されます。
  2. 次にPHP用に変換。
      > php –q makefont.php font.ttf font.ufm
    font.php、font.ctg.z、font.zの3つのファイルができるので、これを [ %TCPDF_ROOT%\fonts ] フォルダにコピー。

フォント作成中に大量のワーニングが出ますが、特に気にしなくても大丈夫そうな雰囲気。ただ一部の文字で文字化けなどが発生するけれど、現状はどうしようもないらしい。

ここまでで下準備は完了。


以下のスクリプトを実行して、PDFファイルとしてブラウザに表示されればOK。

<?php
require_once( './tcpdf.php' );
$pdf = new TCPDF( "L", "mm", "A4", true, "UTF-8" );
$pdf->AddPage();
$pdf->SetFont( "font", "", 16 );
$pdf->Text( 10, 10, "こんにちは!PDF!" );
$pdf->Output("test.pdf", "I");
?>

あとはTCPDFに同梱のドキュメントとにらめっこするべし!(笑)

さて、まずは折れ線グラフを出力できるようにがんばるか・・・。

« [FF11] タイダルタリスマン | トップページ | 朝からツイテナイ »

コメント

自前のフォントでもよいと思いますが、ちなみに最近のバージョンでは
デフォルトで日本語(日中韓フォント)が使えるようになっています。

http://www.monzen.org/Refdoc/tcpdf/

>名無しさん
自前フォントでは、PDFにフォントが埋め込まれて数MBのファイルになってしまうため、デフォルトで使えるフォントを使うことでファイルサイズを小さくできるのであれば、願ったり適ったりです。
タイミングを見てバージョンアップし、その辺確認してみます。
情報ありがとうございました。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/189342/42229432

この記事へのトラックバック一覧です: [PHP] TCPDFを入れてみた:

« [FF11] タイダルタリスマン | トップページ | 朝からツイテナイ »

フォト
2014年7月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

最近のトラックバック