!!!TCPDFを使う !!小塚明朝Pro Mのバグ kozminproregular kozgopromedium は、「÷」や「×」が小さく計算されるバグがある。 表示幅と計算上の幅(改行などに影響)を修正する。 !計算上の幅修正 kozminproregular.php や kozgopromedium.php を開いて $cw 配列を 215=> 1000, 247=>1000 に修正。また、$_cr 配列に array(65377-31, 65439-31, 500), を追加する。 !表示幅修正 PDF出力の際に、半角カナが全角文字の幅で出力される。 修正したい場合は、_putfontwidths関数を修正する。 tcpdf5以前は、tcpdf.php tcpdf6以降は tcpdf_fonts.php に_putfontwidths関数がある。 最後の return '/W ['.$w.' ]'; を if ( $font["fontkey"] == "kozminproregular" || $font["fontkey"] == "kozgopromedium" ) { return '/W ['.$w.' 332 389 600 ]'; } else { return '/W ['.$w.' ]'; } にする。 !!フォントについて http://phpjp.info/?TCPDF%2B%E6%97%A5%E6%9C%AC%E8%AA%9E%28IPA%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%29 標準の小塚フォントよりは、IPAフォントを組み込んだほうが良い。 +IPAフォントをダウンロード +fontsディレクトリへttfファイルをコピー +TTFフォントをTCPDFフォントへ変換 ++帳票出力の際に addTTFfont を呼ぶだけ ++$font1 = $pdf->addTTFfont('./fonts/ipamp.ttf'); IPAフォントなら綺麗だし、幅の修正も不要なのでオススメ。 !!インストール http://sourceforge.net/projects/tcpdf/files/ からダウンロードして任意の場所に解凍。 http://www.monzen.org/Refdoc/tcpdf_freefontj/ から使いたいフォントをダウンロードして、fontsディレクトリへ解凍する。 examples/lang を config/lang へコピー(ディレクトリが存在しない場合は作成する) !!一覧帳票 http://winofsql.jp/VA003334/sh_web100614162543.htm ソース {{ref syain.php}} !!単票 http://techblog.crooz.jp/?p=3324 ソース {{ref tanpyo.php}} 「\」を置き換えないと動かないかも。 !!FPDIとテンプレート 未作成 !!フォントを追加する http://se-suganuma.blogspot.jp/2009/02/tcpdfipa.html TCPDF の fonts/utils をまるごとコピー。IPAのフォントファイルipagp.ttfをutilsの下に置く。 # cd /tmp/utils #./ttf2ufm -a -F ipagui.ttf # php makefont.php ipagui.ttf ipagui.ufm できあがったipagui.ctg.z, ipagui.php, ipagui.zをtcpdf/fontsに格納。 !!領域に合わせてフォントサイズを小さくする MultiCell の16番目の引数を使うと領域に合わせてフォントサイズを小さくすることができる。 14番目の引数(最大の高さ)と2番目の引数の高さを同じ値にして(0以外)、16番目の引数を true にする。 例 $pdf->MultiCell(10, 20, "テスト・テストテスト・テスト",1,'L',false, 0, '', '', true, 0, false, true, 20, 'T', true); !!日本語ファイル名で出力する TCPDFは標準では日本語ファイル名で出力できない。 tcpdf.phpのoutputメソッドを修正する。 if ($dest{0} != 'F') { $name = preg_replace('/[\s]+/', '_', $name); $name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name); } の2つ目のpreg_replaceをコメントアウトする。 !!!PHP Excelを使う !!インストール http://phpexcel.codeplex.com/releases/view/26478 からダウンロードして解凍 !!Archive Zip Archive Zip が無い って言われたら http://pecl.php.net/package/zip から 1.8.10 を入れる。それ以上のバージョンは入らないかもしれない。 {{ref zip-1.8.10.tgz}} !!使い方 適当にサンプルを見る !!!FPDFとfpdiを使う http://homepage3.nifty.com/yamada_ken1/starthp/subpagefpdfj.html#001 http://shikabo.ddo.jp/?cat=72 http://winofsql.jp/VA003334/phpVarious080825125024.htm http://shikabo.ddo.jp/73.html ○php.ini を編集する include_pathに追加する include_path=".;C:\PHP\pear;C:\PHP\fpdf151 とりあえず、{{ref japanese_fpdf_fpdi.zip}}をダウンロードしてinclude_pathに通せばOK。 {{category2 プログラミング言語,PHP}}