トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF 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フォントを組み込んだほうが良い。

  1. IPAフォントをダウンロード
  2. fontsディレクトリへttfファイルをコピー
  3. TTFフォントをTCPDFフォントへ変換
    1. 帳票出力の際に addTTFfont を呼ぶだけ
    2. $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(713)


 単票

http://techblog.crooz.jp/?p=3324

ソース
tanpyo.php(704)
「\」を置き換えないと動かないかも。


 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(599)

 使い方

適当にサンプルを見る



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(617)をダウンロードしてinclude_pathに通せばOK。


[カテゴリ: プログラミング言語 > PHP]

[通知用URL]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2016年04月10日 21時24分30秒