トップ 一覧 置換 検索 ヘルプ RSS ログイン

PDFを出力するの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!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}}