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
ソース
syain.php(742)
単票
http://techblog.crooz.jp/?p=3324
ソース
tanpyo.php(736)
「\」を置き換えないと動かないかも。
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
を入れる。それ以上のバージョンは入らないかもしれない。
zip-1.8.10.tgz(619)
使い方
適当にサンプルを見る
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
とりあえず、japanese_fpdf_fpdi.zip(645)をダウンロードしてinclude_pathに通せばOK。
[カテゴリ: プログラミング言語 > PHP]
[通知用URL]
Tweet
最終更新時間:2016年04月10日 21時24分30秒