Archive for 8月, 2013



31
8月

TCPDFとFPDIの使い方メモ


仕事でTCPDFFPDIを使った際に利用したいろいろなメモ…_〆(゚▽゚*)

最後の改ページの判定方法があまり情報がなくて1番苦労しました。

今後なにかに使えそうなので、メモを残しておこうと思います( ´ー`)

※cakephpで使用することを前提としたメモです。

1.cakephpに組み込む
・TCPDFは解凍してできたtcpdfディレクトリをapp/vendors/にアップロード
・FPDIは解凍してできたファイルをapp/vendors/tcpdfにアップロード
・コンポーネントに組み込む

App::import('Vendor', 'tcpdf', array('file' => 'tcpdf/tcpdf.php')); App::import('Vendor', 'fpdi', array('file' => 'tcpdf/fpdi.php'));


・組み込んだらFPDIを呼び出すのみ
$pdf = new FPDI();

2.PDFの余白(上左右)を設定

$pdf->SetMargins(0, 0, 0);

3.セルパディングの設定

$pdf->SetCellPadding(0);

4.自動改ページを無効
・後述のwriteHTMLcellはこれを無効にしても自動改行される

$pdf->SetAutoPageBreak(false);

5.ページヘッダを無効

$pdf->setPrintHeader(false);

6.ページフッタを無効

$pdf->setPrintFooter(false);

7.空のページを追加

$pdf->AddPage();

8.ノーマルフォントとボールドフォントを追加
・フォントはmigmix-1pを拝借
・TTFファイルは前述でアップしたディレクトリ内のtcpdf/fontsにアップしないとエラーになる

$font_path1 = APP.'vendors/tcpdf/fonts/migmix-1p-regular.ttf'; $font_path2 = APP.'vendors/tcpdf/fonts/migmix-1p-bold.ttf'; $font1 = $pdf->addTTFfont($font_path1, '', '', 32); $font2 = $pdf->addTTFfont($font_path2, '', '', 32);

9.フォントをセット
・ボールドフォントはセットしなくても、後述の「writeHTMLcell」内でbタグを使用することで自動的にボールドフォントが使用される

$pdf->SetFont($font1, '', 11);

10.フォントの色を設定(RGB)

$pdf->SetTextColor(82, 82, 84);

11.PDFテンプレートの読み込み

$pdf->setSourceFile(VIEWS.'template.pdf');

12.フォントサイズの設定(変更)

$pdf->SetFontSize(12);

13.PDFテンプレートの指定ページを使用する

$page = $pdf->importPage(1); $pdf->useTemplate($page);

14.セルの行間を設定

$pdf->setCellHeightRatio(1.2);

15.カーソルの現在の位置(Y座標)を取得

$pdf->GetY();

16.PDFにセルを使って文字列(htmlタグを使用)を追加
・writeHTMLcellの詳細はこちら
・セルの高さは自動調整されるので1でもよい

$pdf->writeHTMLcell(セル幅, セル高さ, X座標, Y座標, 文字列, 0, 0, false, true, 文字列の位置(右左中央), false);

17.PDFに画像を追加
・Imageの詳細はこちら

$pdf->Image(画像のパス, X座標, Y座標, 画像のサイズ, '', 'PNG');

18.改行の追加

$pdf->Ln();

19.ページ番号の取得

$pdf->PageNo();

20.writeHTMLcellで文字列を追加した際にページからはみ出さないか(改ページが必要かどうか)判定する

//クローンを作成 $pdf2 = clone $pdf; //クローンに文字列を追加 $pdf2->writeHTMLcell(100, 1, 20, null, $text, 0, 0, false, true, "L", false); $pdf2->Ln(); //オリジナルの現在のカーソル位置(Y座標)を取得 $y = $pdf->GetY(); //クローンの現在のカーソル位置(Y座標)を取得 $y2 = $pdf2->GetY(); /*** *オリジナルのY座標よりクローンのY座標のほうが上にある、 *若しくは260より大きいときは改ページして新しいページを追加 */ if ($y > $y2 || $y2 > 260) { //クローンを削除 $pdf2->deletePage($pdf2->getPage()); //ページを追加 $pdf->AddPage(); //PDFテンプレートのページを指定 $page = $pdf->importPage(2); $pdf->useTemplate($page); }

17
8月

ボールに対して異常にテンションの高いインコ


かわえぇ~(´∀`*)

3
8月

はじめの一歩第3期キタ━━━━(゚∀゚)━━━━!!


はじめの一歩|日本テレビ

第2期から約3年・・・やっと続きがみれますね( ´ー`)

随分前にマガジン読むのを辞めちゃったから続きが気になって仕方がなかったのよね!

はぁ・・・楽しみだなぁ~

now loading...