2011年10月06日15:48 カテゴリphpTCPDF TCPDFを使ったpdf出力 PHPでPDF出力する方法には色々方法があるみたいですが、 標準で日本語に対応しておりフリーのフォントも内蔵しているためにライセンスを 気にせずにすみライブラリのインストールがダウンロードしたファイルを 解凍するだけという手軽さからTCPDFが良く使われているようです。 TCPDFのダウンロードはこちら 今回はTCPDFで一枚ものの報告書に差込印刷をするサンプルです。 動作サンプルはこちら 汎用的に作るためにHTMLでテンプレートファイルを作成し、その中の文字を置換して PDFデータとして与える方法をとります。 入力のフォームはこんな感じ <?php @session_start(); $error = ''; $company_name = @$_POST['company_name']; $
先日クライアントに、PDFファイルを出力できるようにしてくれと言われた。 「やってやろうじゃないか!htmlとcssを組み合わせればレイアウトも自由自在でしょ!」といきまいて作業にとりかかったが、あら大変。実際はそんなに単純じゃなくて、PDFファイルのレイアウトを色々いじるのは難しい!と感じたので、忘れないうちに今回学んだことをメモ。 (もしかしたら私の知識や検索が不足していて、ホントはもっと効率的なやり方があるのかもしれないが、もしそうだとしたら悪しからず) 環境:CakePHP2.4による開発、tcpdf Ver 6.0.055 0. 前提:CSSは効くものと効かないものがある。外部CSSは読み込まないので、styleタグ内にCSSを書くしかない。完全に効かない!とかならまだしも、効くものとそうでないのがあるのが質が悪い。 1. styleタグ内で、id指定は効かない。class指定は
PHPでPDFを出力方法するライブラリとして、PDFlib,FPDF,TCPDF等がよく知られています。 これらの特徴を簡単に説明をすると PDFlibは要ライセンス、PHPの拡張が必要 FPDFはライセンスフリー、ファイルの設置のみで利用可 TCPDFはFPDFをベースにより進化させたもの というようになっています。 今回はこれらの中で、TCPDFを用いてのPDF出力を試してみました。 ・インストール インストールの手順としては 1.TCPDF設置 2.コンフィグを変更 3.フォントファイルを準備 が主な手順となります。 1.TCPDF設置 これに関しては、最新ライブラリをDL後に、解凍し設置した居場所に置くだけになります。 2.コンフィグを変更 tcpdfをドキュメントルートに設置した場合以外は、パスの指定が必要になります。 変更が必要なファイルは tcpdf\co
発表資料 資料はこちらになります。プレゼンのPDFデータはこちら。 動画 各種データ プレゼン中で見せた、TCPDF出力のPDFサンプルは以下です。 sfTCPDFPluginで出力したサンプルPDF その1 sfTCPDFPluginで出力したサンプルPDF その2 自分で書いたhtmlから生成したPDF symfony上でのPDF生成例として、プレゼンで見せた画面のコードを張っておきます。 sfTCPDFPluginを使ったPDF出力サンプルコード なお、このコードだけでは動きません。だいたい、以下の作業が必要です。 適当なプロジェクトとappを作成 sfTCPDFPluginのインストール settting.ymlでのsfTCPDFモジュール有効化 app/[app名]/modules 以下に、tar.gz中身を展開 http:://mydmain/[app].php/pdf/ind
※tcpdf ver4.8 TCPDFでPDFを表示する時、 たまにスペースが改行になったり、スペースの後のテキストが全て表示されなくなるケースがあった。 条件が定かでなく、環境によって改行されたりされなかったり・・・ どこにも解決策が見当たらなかったんで、自力で調査。 多分これでOK これを tcpdf.phpの4419行目 if (($l > $wmax) OR ($shy AND (($l + $tmp_shy_replacement_width) > $wmax)) ) { } こうする。 if (($l > $wmax) OR ($shy AND (($l + $tmp_shy_replacement_width) > $wmax)) ) { }else{ $sep = -1; } 色々調べてみると、他のテキストではループが終わるころには 全部「$sep = -1」となっているの
TCPDFとFPDIで既存PDFを読み込んだときにエラーとなって困ったときのメモ。 エラーは TCPDF ERROR: This document (/opt/test.pdf) probably uses a compression technique which is not supported by the free parser shipped with FPDI. 「PDFが圧縮されているからフリー版のFPDIでは扱えない」らしい。 このとき使ったツールたちのバージョンは MS Excel 2003 Adobe Acrobat 9.0 (PDF Maker) TCPDF 5.8.002 FPDI 1.3.3 (FPDF_TPL 1.1.5) TCPDFとFPDIのインストールに関しては前の記事を参考に。 Excelで作成した帳票を印刷するときに、Acrobatをインストールすると
TCPDF 4.5 + FPDI 1.2.1で既存PDFを編集しようとしてみたけど、バージョンの関係で動かず。どうしたものかと思ったらfpdi.phpを修正するパッチがありました。ここから。 FPDIのバージョンアップで対応すると思いますが、取り急ぎの場合はこれで解決。 <2009/03/22 追記> 最新のFPDI 1.3でパッチを当てなくても正常に動作することを確認。 日本語が含まれたPDFを読み込んでも正常に表示。独自にフォントを追加した場合はファイルサイズが大きくなるけど、フォントを埋め込んでいるのでこれはしょうがない。 TCPDFの標準日本語フォントを使った場合はファイルサイズは大きくならなかった。 ・・・ということは、日本語OS以外で開いた場合は文字化けしそう。・・・ま、いっか。 TCPDFのマニュアルは下記サイトが分かりやすい。 TCPDFに関するリファレンス <インストール
Warning: opendir(/dat/www/domains/www.monzen.org/sites/refdoc/tcpdf/latest/fonts.org) [function.opendir]: failed to open dir: No such file or directory in /dat/www/domains/www.monzen.org/sites/refdoc/tcpdf/index.phl on line 358 Warning: readdir() expects parameter 1 to be resource, boolean given in /dat/www/domains/www.monzen.org/sites/refdoc/tcpdf/index.phl on line 360 Warning: closedir() expects
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く