.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
15 人のユーザが現在オンラインです。 (14 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15

もっと...

.
.リンク集

メイン
   一般的な話題(General)
     PDFファイルをPHPで即、生成
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
shun
投稿日時: 2007-1-30 9:34
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
PDFファイルをPHPで即、生成
*注:日本語を出力させる場合、FPDFか、TCPDFというライブラリを使うのが近道です!*

PHPでPdfのバイナリをその場で作ってしまおう、というライブラリ

Pdf Class
http://ros.co.nz/pdf/

よくやりますね。デモをテストしたところ、思った以上にすばやく生成されました。

これを CakePHP で使うには、というTips。

PDF helper using pdf php
http://bakery.cakephp.org/articles/view/218
ohguma
投稿日時: 2007-3-1 16:29
Baker 常連
登録日: 2006-10-23
居住地:
投稿: 66
Re: PDFファイルをPHPで即、生成
CakePHP上でFPDFを使う記事もありました。

PDF helper using fpdf
http://bakery.cakephp.org/articles/view/225


「Pdf Class」は日本語の表示に挫折しましたが、FPDF + japanese.phpではあっさりと日本語表示できました。
shun
投稿日時: 2007-6-25 0:12
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: PDFファイルをPHPで即、生成
情報ありがとうございます。記事も書かれているんですね。

ohgumaの凹み日記
CakePHP の FPDF helper
http://d.hatena.ne.jp/ohguma/20070227

下記のような感想が……。

PHP覚え書き
cakePHPでPDF
http://phper76.10.dtiblog.com/blog-entry-7.html
引用:

ohgumaの凹み日記さんのところに、
cakePHPでFPDFを扱う為のhelperがありました。

CakePHP の FPDF helper

コントローラ、ビューのサンプルコードもありますので
使い方も分かりやすくて良いです。

これで簡単にPDFが作成できます。
custar
投稿日時: 2007-6-25 10:21
Cake 職人
登録日: 2007-5-31
居住地:
投稿: 189
Re: PDFファイルをPHPで即、生成
記事を読んだだけで、実際試していないのですが、ご存知の方教えてください。

これら PDF を作る Helper 等で、罫線を含む帳票のような PDF は生成可能な
のですか? 可能ならサンプルとして家事当番表を作ってみたい
shun
投稿日時: 2007-6-25 11:12
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: PDFファイルをPHPで即、生成
下記などを見ると、FPDFでいろいろできるようですね。
http://www.yuyuyu.jp/other/Linux/manuals/fpdf_manual/index.htm

ちょっと話題から外れますが、

クライアントがWindowsでよくて、複雑な帳票を作りたい、というのであれば、私は pxdocをお勧めします。

http://www.pxdoc.com

・SVGエディタなどで元データを作れる。グラフィックデータなどでもOK。
・PDFよりも出力スピードが速い。
・クライアント側で自動印刷させることも可能。
・何より無料。

これ何?という人は、ソフトをインストールしてから下記のサンプルを見ると、その威力が分かると思います。

サンプル
http://www.pxdoc.com/sample/index.htm

私のところでは、かなり複雑な十数ページに渡る帳票をこれで出力させています。なぜ、もっとはやらないんだろう?と思っているお勧めの一本です。

[と思って検索してみたところ、以前よりユーザ増えていますね。]
custar
投稿日時: 2007-6-25 13:21
Cake 職人
登録日: 2007-5-31
居住地:
投稿: 189
Re: PDFファイルをPHPで即、生成
引用:

クライアントがWindowsでよくて、複雑な帳票を作りたい、というのであれば、私は pxdocをお勧めします。


ふぇ! 情報ありがとうございます。

でも、んんん、この画面、何処かで見た記憶が。

1年位前、Amazon の書籍情報と図書館のリクエスト用紙をくっつけたサービス
を自分用に作った際に、出力手段として見た記憶がありました。すっかり忘れ
てた。

当時は、面倒くさそうに感じたけど、そうじゃないのかもしれないですね。頑
張って取り込んでみます。

ありがとう。
aokazu
投稿日時: 2007-8-22 20:53
Baker 常連
登録日: 2007-1-8
居住地: 浦安
投稿: 57
Re: PDFファイルをPHPで即、生成
ohgumaさんの凹み日記 を参照して、
PDF表示をこころみているのですが、
なぜか、以下のようなPDFのソースが表示されてしまいます。

%PDF-1.3 3 0 obj <> endobj 4 0 obj <> stream 2 J 0.57 w BT /F1 16.00 
Tf ET BT 31.19 794.57 Td (ハローワールド hello world!) Tj ET .............


このソースをエディタに貼り付けて、拡張子.pdf で保存し、表示するとちゃんとしたPDFで表示されます。
どなたか同じような経験をお持ちの方はいらっしゃいますでしょうか?


shun
投稿日時: 2007-8-23 11:06
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: PDFファイルをPHPで即、生成
出力されるデータの頭には下記の設定があるでしょうか。

<?php
header
("Content-type: application/pdf");
?>



これが効いていないと、単にデータが表示されるだけだと思います。
aokazu
投稿日時: 2007-8-23 14:12
Baker 常連
登録日: 2007-1-8
居住地: 浦安
投稿: 57
Re: PDFファイルをPHPで即、生成
Shun様 ありがとうございます。

投稿後、もっとシンプルにしようと思い、まず
mbfpdf.php で動くように設定したところ、

AddMBFont関数内でグローバル変数を使用しており
この値が取れないことがわかりましたので、
これを以下の用に修正。

	function AddMBFont($family='',$enc='')
	{
		//global $MBTTFDEF,$MBCMAP; <---コメントする。

		$fn = FPDF_FONTPATH."/".strtolower($family).".php";
		if (file_exists($fn)){
			include_once($fn);
		}

		$gt=$this->setMBTTFDEF(); //<---ここを変更
		$gc=$this->setMBCMAP(); //<---ここを変更

		if ($enc == '' || isset($gc[$enc]) == false) {
			die("AddMBFont: ERROR Encoding [$enc] Undefine.");
		}

		if (isset($gt[$family])) {
			$ut=$gt[$family]['ut'];
			$up=$gt[$family]['up'];
			$cw=$gt[$family]['cw'];
			$mbcw=array_key_exists("mbcw", $gt[$family]);
			$cm=$gc[$enc]['CMap'];
			$od=$gc[$enc]['Ordering'];
			$sp=$gc[$enc]['Supplement'];
			$registry=array('ordering'=>$od,'supplement'=>$sp);
			$this->AddCIDFont($family,''  ,"$family"           ,$cw,$cm,$registry,$ut,$up,$mbcw);
			$this->AddCIDFont($family,'B' ,"$family,Bold"      ,$cw,$cm,$registry,$ut,$up,$mbcw);
			$this->AddCIDFont($family,'I' ,"$family,Italic"    ,$cw,$cm,$registry,$ut,$up,$mbcw);
			$this->AddCIDFont($family,'BI',"$family,BoldItalic",$cw,$cm,$registry,$ut,$up,$mbcw);
		} else {
			die("AddMBFont: ERROR FontName [$family] Undefine.");
		}
	}


そして、以下2つの関数を追加しました。


	function setMBTTFDEF(){
		require('font/mbttfdef.php');   // Multi-Byte TrueType Font Define
		return $MBTTFDEF;

	}

	function setMBCMAP(){
		// Encoding & CMap List (CMap information from Acrobat Reader Resource/CMap folder)
		$MBCMAP['BIG5']   = array ('CMap'=>'ETenms-B5-H'   ,'Ordering'=>'CNS1'  ,'Supplement'=>0);
		$MBCMAP['GB']     = array ('CMap'=>'GBKp-EUC-H'    ,'Ordering'=>'GB1'   ,'Supplement'=>2);
		$MBCMAP['SJIS']   = array ('CMap'=>'90msp-RKSJ-H'  ,'Ordering'=>'Japan1','Supplement'=>2);
		$MBCMAP['UNIJIS'] = array ('CMap'=>'UniJIS-UTF16-H','Ordering'=>'Japan1','Supplement'=>5);
		$MBCMAP['EUC-JP'] = array ('CMap'=>'EUC-H'         ,'Ordering'=>'Japan1','Supplement'=>1);
		return  $MBCMAP;
	}


これで、なんとか基本的動作はクリアしました。

news
投稿日時: 2008-4-16 23:20
Cake 職人
登録日: 2007-4-4
居住地:
投稿: 1277
Re: PDFファイルをPHPで即、生成
開発メモだそうです。

凛の開発メモ
CakePHPでPDF出力
http://linbookmark.blog37.fc2.com/blog-entry-13.html
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .