source: branches/feature-module-paygent/data/class/SC_Pdf.php @ 17

Revision 17, 14.4 KB checked in by uehara, 14 years ago (diff)
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8/*----------------------------------------------------------------------
9 * [̾¾Î] GC_Pdf
10 * [³µÍ×] Pdf¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë¡£(PDFLibɬ¿Ü)
11 *----------------------------------------------------------------------
12 */
13
14// ¥°¥ê¥Ã¥É¤Èʸ»ú¤Î´Ö³Ö
15define("GRID_SPACE", 4);
16
17class SC_Pdf {
18    var $arrText;
19    var $arrImage;
20    var $license_key;
21    var $block_option;
22    var $src_code;
23    var $dst_code;
24    var $pdiwarning;
25    var $pdfpath;
26    var $page_close;
27           
28    function SC_Pdf($width = 595, $height = 842, $fontsize = 10) {
29        $this->license_key = "B600602-010400-714251-5851C1";
30        $this->src_code = CHAR_CODE;
31        // UTF-8¤Ç¤Ê¤¤¤È¥Ö¥í¥Ã¥¯Æâ¤Ç²þ¹Ô¤Ç¤­¤Ê¤¤¡£
32        $this->dst_code = "UTF-8";
33        // PDF BLOCK¤Î¥×¥í¥Ñ¥Æ¥£
34        $this->block_option = "encoding=UniJIS-UCS2-H textformat=utf8 fontname=HeiseiMin-W3 textflow=true";
35        // ·Ù¹ðɽ¼¨
36        $this->pdiwarning = "true";
37        // ¥Ú¡¼¥¸¥µ¥¤¥ºÀßÄê
38        $this->width = $width;
39        $this->height = $height;
40        // PDF½é´ü²½
41        $this->pdf = PDF_new();
42        PDF_set_parameter($this->pdf, "license", $this->license_key);
43        PDF_set_parameter($this->pdf, "pdiwarning", $this->pdiwarning);
44        // ¥É¥­¥å¥á¥ó¥È³«»Ï
45        PDF_begin_document($this->pdf, NULL, NULL);
46        // ¥Ú¡¼¥¸¤Î¾õÂÖ
47        $this->page_open = false;
48        // ¥Æ¡¼¥Ö¥ë¤Î¿§ÀßÄê
49        $this->setTableColor();
50        // ¥Õ¥©¥ó¥È¥µ¥¤¥º¤ÎÀßÄê
51        $this->fontsize = $fontsize;
52        // ¥°¥ê¥Ã¥ÉÉÁ²è¤ÎÆüì»ØÄê
53        $this->arrLines = array();
54        // ¥Æ¡¼¥Ö¥ë¥¿¥¤¥È¥ë¤Î¥¹¥¿¥¤¥ë
55        $this->arrHeaderColSize = array();
56        $this->arrHeaderAlign = array();
57        // ¥Æ¡¼¥Ö¥ëÊäÀµÃÍ
58        $this->table_left = 0;
59        // ¥¿¥¤¥È¥ë¹Ô¤Î½ÐÎÏ
60        $this->title_enable = true;
61        // ¥°¥ê¥Ã¥É¤Î½ÐÎÏ
62        $this->grid_enable = true;
63    }
64   
65    // ¥¿¥¤¥È¥ë¤ò½ÐÎϤ¹¤ë¤«Èݤ«
66    function setTitleEnable($flag) {
67        $this->title_enable = $flag;
68    }
69   
70    // ¥°¥ê¥Ã¥É¤ò½ÐÎϤ¹¤ë¤«Èݤ«
71    function setGridEnable($flag) {
72        $this->grid_enable = $flag;
73    }
74       
75       
76    // ¥­¡¼¡§¥Ö¥í¥Ã¥¯Ì¾¡¢ÃÍ¡§É½¼¨¥Æ¥­¥¹¥È¤Î¥Ï¥Ã¥·¥åÇÛÎó¤ò¥»¥Ã¥È¤¹¤ë¡£
77    function setTextBlock($list) {
78        unset($this->arrText);
79        $this->arrText[] = $list;
80    }
81   
82    // ¥­¡¼¡§¥Ö¥í¥Ã¥¯Ì¾¡¢ÃÍ¡§¥Õ¥¡¥¤¥ë¥Ñ¥¹¤Î¥Ï¥Ã¥·¥åÇÛÎó¤ò¥»¥Ã¥È¤¹¤ë¡£
83    // ¢¨¥Ñ¥¹¤Ï¥É¥­¥å¥á¥ó¥È¥ë¡¼¥È°Ê²¼
84    function setImageBlock($list) {
85        unset($this->arrImage);
86        $this->arrImage[] = $list;
87    }
88   
89    // ɽ¼¨ÇطʤȤʤë¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¥Ñ¥¹
90    // ¢¨¥Ñ¥¹¤Ï¥É¥­¥å¥á¥ó¥È¥ë¡¼¥È°Ê²¼
91    function setTemplate($pdfpath) {
92        if(file_exists($pdfpath)) {
93            $this->pdfpath = $pdfpath;
94        } else {
95            print("»ØÄꤷ¤¿PDF¥Æ¥ó¥×¥ì¡¼¥È¤Ï¸ºß¤·¤Þ¤»¤ó¡§".$pdfpath);
96            exit;
97        }
98    }
99   
100    // ¥Æ¡¼¥Ö¥ë°ÌÃÖÊäÀµÃÍ
101    function setTableLeft($table_left) {
102        $this->table_left = $table_left;
103    }
104   
105    // ¥°¥ê¥Ã¥ÉÉÁ²è¤ÎÆüì»ØÄê
106    function setGridLines($list) {
107        $this->arrLines = $list;
108    }
109   
110    // ¥Æ¡¼¥Ö¥ë¥¿¥¤¥È¥ë¤Î¥¹¥¿¥¤¥ëÀßÄê
111    function setTableHeaderStyle($arrColSize, $arrAlign) {
112        $this->arrHeaderColSize = $arrColSize;
113        $this->arrHeaderAlign = $arrAlign;
114    }
115   
116    // ¥Ö¥í¥Ã¥¯¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß(close¤¹¤ë¤È¼¡²ó¿·µ¬¥Ú¡¼¥¸)
117    function writeBlock() {
118        // ¥Æ¥ó¥×¥ì¡¼¥È¤ò»ÈÍѤ¹¤ë
119        if(!file_exists($this->pdfpath)) {
120            return;
121        }
122        // ´û¸PDF¤Î¥É¥­¥å¥á¥ó¥È¤ò¼èÆÀ
123        $doc = pdf_open_pdi($this->pdf, $this->pdfpath, NULL, 0 );
124        // ´û¸PDF¤Î¥É¥­¥å¥á¥ó¥È¤«¤é»ØÄê¥Ú¡¼¥¸¤ò¼èÆÀ
125        $page = pdf_open_pdi_page($this->pdf, $doc, 1, NULL );
126        // ¥Ú¡¼¥¸¤ò³«¤¯
127        $this->openPage();
128       
129        // ´û¸PDF¤Î¥Ú¡¼¥¸¤ò³ä¤êÅö¤Æ¤ë
130        PDF_fit_pdi_page($this->pdf, $page, 0, 0, "adjustpage");
131       
132        // ¥Æ¥­¥¹¥È¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß
133        $max = count($this->arrText);
134        for($i = 0;$i < $max; $i++) {
135            foreach($this->arrText[$i] as $key => $val) {
136                if($val != "") {
137                    // ʸ»ú¥³¡¼¥É¤ÎÊÑ´¹
138                    mb_convert_variables($this->dst_code, $this->src_code, $val);
139                    // ½ñ¤­¹þ¤ß
140                    $ret = PDF_fill_textblock($this->pdf, $page, $key, $val, $this->block_option);
141                }
142            }
143        }
144       
145        // ¥¤¥á¡¼¥¸¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß
146        $max = count($this->arrImage);
147        for($i = 0;$i < $max; $i++) {
148            foreach($this->arrImage[$i] as $key => $val) {
149                if($val != "") {
150                    $img = PDF_load_image($this->pdf, "auto", $val, NULL );
151                    $ret = PDF_fill_imageblock($this->pdf, $page, $key, $img, NULL);
152                }
153            }
154        }
155       
156        // ³ä¤êÅö¤Æ¤¿¥Ú¡¼¥¸¤òÊĤ¸¤ë
157        PDF_close_pdi_page($this->pdf, $page);
158        // ³ä¤êÅö¤Æ¤¿¥É¥­¥å¥á¥ó¥È¤òÊĤ¸¤ë
159        PDF_close_pdi($this->pdf, $doc);
160    }
161   
162    // ¥Ú¡¼¥¸¤òÊĤ¸¤ë
163    function closePage() {
164        if($this->page_open) {
165            // ¥Ú¡¼¥¸¤òÊĤ¸¤ë
166            PDF_end_page_ext($this->pdf, NULL);
167            $this->page_open = false;
168        }       
169    }
170   
171    // ¥Ú¡¼¥¸¤ò³«¤¯
172    function openPage() {
173        if(!$this->page_open) {
174            // ¿·¤·¤¤¥Ú¡¼¥¸¤ò³«¤¯   
175            PDF_begin_page_ext($this->pdf, $this->width, $this->height, NULL);
176            $this->page_open = true;
177        }
178    }
179   
180    // ¿·¤·¤¤¥Ú¡¼¥¸¤ò³«¤¯
181    function newPage() {
182        PDF_end_page_ext($this->pdf, NULL);
183        PDF_begin_page_ext($this->pdf, $this->width, $this->height, NULL);
184    }
185   
186    // ¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ú¡¼¥¸¤Î¥µ¥¤¥º¤ò¼èÆÀ¤¹¤ë
187    function getSize() {
188        $this->openPage();
189        $x = PDF_get_value($this->pdf, 'pagewidth', 0);
190        $y = PDF_get_value($this->pdf, 'pageheight', 0);
191        return array($x, $y);
192    }
193   
194    // ºÂɸ¤òÆþ¤ìÂؤ¨¤Æ¼èÆÀ¤¹¤ë(º¸²¼(0,0)¤òº¸¾å(0,0)¤ËÊÑ´¹)
195    function posTopDown($x, $y) {
196        $width = 0;
197        $height = 0;
198        list($width, $height) = $this->getSize();
199        // xºÂɸ¤Ï¡¢Êѹ¹¤ÎɬÍפʤ·
200        $pdf_x = $x;
201        $pdf_y = $height - $y;
202        return array($pdf_x, $pdf_y);
203    }
204   
205    // ¥Æ¡¼¥Ö¥ë¥«¥é¡¼¤ÎÀßÄê
206    function setTableColor($frame_color = "000000", $title_color = "F0F0F0", $line_color = "D1DEFE", $last_color = "FDCBFE") {
207        $this->frame_color = $frame_color;
208        $this->title_color = $title_color;
209        $this->line_color = $line_color;
210        $this->last_color = $last_color;
211    }
212   
213    // ¥Æ¡¼¥Ö¥ë¤Î¥°¥ê¥Ã¥É¤òɽ¼¨¤¹¤ë¡£
214    function writeGrid($x, $y, $arrCol, $line_max, $last_color_flg = true) {
215        // ¥Æ¡¼¥Ö¥ëÉý
216        $max = count($arrCol);
217        $width = 0;
218        for($i = 0; $i < $max; $i++) {
219            $width += $arrCol[$i];
220        }
221       
222        if($this->title_enable) {
223            // ¥¿¥¤¥È¥ë¥°¥ê¥Ã¥ÉÉÁ²è
224            $this->writeFrameRect($x, $y + GRID_SPACE, $width + GRID_SPACE, $this->fontsize + GRID_SPACE, $this->title_color, $this->frame_color);
225        }
226       
227        // ¥°¥ê¥Ã¥ÉÆüì»ØÄꤢ¤ê
228        if(count($this->arrLines) > 0) {
229            $count = count($this->arrLines);
230            $pos = 0;
231            for($i = 0; $i < $count; $i++) {
232                if(($i % 2) != 0) {
233                    // ¹Ô¤Î´Ö³Ö
234                    $down = ($pos + 1) * $this->fontsize * 1.5;
235                    // ÉÁ²è¤¹¤ë½ÄÉý¤òµá¤á¤ë
236                    $height = ($this->fontsize + GRID_SPACE) * $this->arrLines[$i] + ($this->arrLines[$i] - 1);
237                    // ¹Ô¥°¥ê¥Ã¥ÉÉÁ²è
238                    $this->writeRect($x, $y + GRID_SPACE + $down, $width + GRID_SPACE, $height, $this->line_color);
239                }
240                $pos += $this->arrLines[$i];   
241            }                       
242        } else {
243            for($i = 1; $i <= $line_max; $i++) {
244                if(($i % 2) == 0) {
245                    // ¹Ô¤Î´Ö³Ö
246                    $down = $i * $this->fontsize * 1.5;
247                    // ¹Ô¥°¥ê¥Ã¥ÉÉÁ²è
248                    $this->writeRect($x, $y + GRID_SPACE + $down, $width + GRID_SPACE, $this->fontsize + GRID_SPACE, $this->line_color);
249                }
250            }
251            // ºÇ½ª¹Ô¤Ë¿§¤ò¤Ä¤±¤ë¾ì¹ç
252            if($last_color_flg) {
253                // ¹Ô¤Î´Ö³Ö
254                $down = $line_max * $this->fontsize * 1.5;
255                // ¹Ô¥°¥ê¥Ã¥ÉÉÁ²è
256                $this->writeRect($x, $y + GRID_SPACE + $down, $width + GRID_SPACE, $this->fontsize + GRID_SPACE, $this->last_color);
257            }
258        }
259    }
260   
261    // ¥°¥ê¥Ã¥ÉÍѤΥ¢¥ó¥À¡¼¥é¥¤¥ó¤ò°ú¤¯
262    /*
263        $x          :¥Æ¡¼¥Ö¥ë³«»Ï°ÌÃÖX¼´
264        $y          :¥Æ¡¼¥Ö¥ë³«»Ï°ÌÃÖY¼´
265        $arrCol     :¥«¥é¥à¥µ¥¤¥º¤ÎÇÛÎó
266        $line       :¥¢¥ó¥À¡¼¥é¥¤¥ó¤ò°ú¤¯¹Ô
267        $start_col  :¥¢¥ó¥À¡¼¥é¥¤¥ó³«»Ï¥«¥é¥à(0:³«»Ï¥«¥é¥à)
268     */
269    function writeUnderLine($x, $y, $arrCol, $line, $start_col = 0) {
270        // ¥Æ¡¼¥Ö¥ëÉý
271        $max = count($arrCol);
272        $width = 0;
273        for($i = 0; $i < $max; $i++) {
274            $width += $arrCol[$i];
275        }
276       
277        $start_x = 0;
278        for($i = 0; $i < $start_col; $i++) {
279            $start_x += $arrCol[$i];
280        }
281       
282        // ¥¢¥ó¥À¡¼¥é¥¤¥ó¤ÎYºÂɸ¤òµá¤á¤ë
283        $down = ($line + 1) * $this->fontsize * 1.5;
284        // ¹Ô¥°¥ê¥Ã¥ÉÉÁ²è
285        $sx = $x + $start_x + GRID_SPACE + $this->table_left;
286        $sy = $y + GRID_SPACE + $down - 1;
287        $ex = $x + $width + GRID_SPACE;
288        $ey = $sy;
289               
290        $this->writeLine($sx, $sy, $ex, $ey);       
291    }
292   
293    // ¿¿¤óÃæ²£°ÌÃÖ¤òµá¤á¤ë
294    function getXCenter($width) {
295        $page_width = 0;
296        $page_height = 0;
297        list($page_width, $page_height) = $this->getSize();
298        $x = ($page_width - $width) / 2;
299        return $x;
300    }
301   
302    // ¼«Æ°Ãæ±û¤è¤»
303    function writeTableCenter($table, $y, $arrCol, $arrAlign, $line_max = 256, $start_no = 1, $last_color_flg = false) {
304        // ¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¼èÆÀ
305        $width = 0;
306        foreach($arrCol as $val) {
307            $width += $val;
308        }
309        // Ãæ±û¤è¤»°ÌÃÖ¼èÆÀ
310        $x = $this->getXCenter($width) + $this->table_left;
311        list($ret_x, $ret_y) = $this->writeTable($table, $x, $y, $arrCol, $arrAlign, $line_max, $start_no, $last_color_flg);
312        // X¼´¤ÎºÂɸ¤òÊÖ¤¹
313        return array($ret_x, $ret_y);
314    }
315   
316    // ¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß(close¤¹¤ë¤È¼¡²ó¿·µ¬¥Ú¡¼¥¸)
317    // $start_no:1¹ÔÌÜ(¥¿¥¤¥È¥ë)¤ò0¤È¤¹¤ë¡£
318    // $line_max:¥¿¥¤¥È¥ë¤ò´Þ¤Þ¤Ê¤¤¹Ô¿ô
319    function writeTable($table, $x, $y, $arrCol, $arrAlign, $line_max = 256, $start_no = 1, $last_color_flg = false) {
320        $this->openPage();
321       
322        $table = ereg_replace("\n$", "", $table);
323               
324        $arrRet = split("\n", $table);
325                               
326        if($line_max > (count($arrRet) - $start_no)) {
327            $line_max = count($arrRet) - $start_no;
328        }
329       
330        // ¥¿¥¤¥È¥ëÍ­¸ú
331        if($this->grid_enable) {
332            // ¥°¥ê¥Ã¥É¤ÎÉÁ²è
333            $this->writeGrid($x, $y, $arrCol, $line_max, $last_color_flg);
334        }
335       
336        // Unicode¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤È¤·¤ÆUTF-8¤òÀßÄê
337        PDF_set_parameter($this->pdf, "textformat", "utf8");
338       
339        // ¥¿¥¤¥È¥ëÍ­¸ú
340        if($this->title_enable) {
341            if(count($this->arrHeaderColSize) > 0 && count($this->arrHeaderAlign) > 0 ) {
342                list($linecol, $aligncol, $width) = $this->getTableOption($this->arrHeaderColSize, $this->arrHeaderAlign);
343            } else {
344                list($linecol, $aligncol, $width) = $this->getTableOption($arrCol, $arrAlign);
345            }   
346                       
347            // ¥¿¥¤¥È¥ë¹Ô¤Î½ñ¤­¹þ¤ß
348            $option = "ruler {" . $linecol . "} ";
349            $option.= "tabalignment {" . $aligncol . "} ";
350            $fontsize =  $this->fontsize;
351            $option.= "hortabmethod ruler leading=150% fontname=HeiseiKakuGo-W5 fontsize=$fontsize encoding=UniJIS-UCS2-H";
352           
353            $this->writeTableData($table, $x, $y, $width, 0, 0, $option);
354        }
355       
356        list($linecol, $aligncol, $width) = $this->getTableOption($arrCol, $arrAlign);
357       
358        // ¥Ç¡¼¥¿¹Ô¤Î½ñ¤­¹þ¤ß
359        $option = "ruler {" . $linecol . "} ";
360        $option.= "tabalignment {" . $aligncol . "} ";
361        $option.= "hortabmethod ruler leading=150% fontname=HeiseiMin-W3 fontsize=$this->fontsize encoding=UniJIS-UCS2-H";
362       
363        if($start_no <= 0) {
364            $start_no = 1;
365            $end_no = $line_max;
366        } else {
367            $end_no = $start_no + $line_max - 1;
368        }
369       
370        $y += $this->fontsize * 1.5;
371       
372        list($ret_x, $ret_y) = $this->writeTableData($table, $x, $y, $width, $start_no, $end_no, $option);
373       
374        return array($ret_x, $ret_y);
375    }
376   
377    function getTableOption($arrCol, $arrAlign) {
378        // ¥«¥é¥à¥µ¥¤¥º
379        $max = count($arrCol);
380        $width = 0;
381        for($i = 0; $i < $max; $i++) {
382            $width += $arrCol[$i];
383            $linecol.= $width . " ";
384        }
385       
386        // ¥«¥é¥à°ÌÃÖ
387        $max = count($arrAlign);
388        for($i = 0; $i < $max; $i++) {
389            $aligncol.= $arrAlign[$i] . " ";
390        }
391       
392        return array($linecol, $aligncol, $width);
393    }
394   
395    // ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß
396    function writeTableData($table, $x, $y, $table_width, $start_no, $end_no, $option) {
397        $arrLine = split("\n", $table);
398        for($i = $start_no; $i <= $end_no; $i++) {
399            $line.=$arrLine[$i] . "\n";
400        }
401               
402        // ¥Æ¡¼¥Ö¥ë°ÌÃÖ¤òµá¤á¤ë
403        list($pdf_x, $pdf_y) = $this->posTopDown($x, $y);
404                       
405        // ¥Æ¡¼¥Ö¥ë¹â¤µ¤òµá¤á¤ë
406        $table_height = $this->fontsize * 1.5 * ($end_no - $start_no + 1);
407        // ¥Æ¡¼¥Ö¥ë±¦²¼¤ÎyºÂɸ¤òµá¤á¤ë
408        $end_y = $pdf_y - $table_height;
409        if($end_y < 0) {
410            $end_y = 0;
411        }
412        $enc_table = mb_convert_encoding($line, "utf-8", CHAR_CODE);
413               
414        $tf = PDF_create_textflow($this->pdf, $enc_table, $option);
415
416        PDF_fit_textflow($this->pdf, $tf, $pdf_x, $pdf_y, $pdf_x + $table_width, $end_y, NULL);
417        PDF_delete_textflow($this->pdf, $tf);
418       
419        // ¥Æ¡¼¥Ö¥ëº¸²¼ºÂɸ¤òÊÖ¤¹
420        return array($x, $y + $table_height);       
421    }
422       
423    // ¿§¤ÎÀßÄê
424    function setColor($rgb) {
425        if($rgb != "") {
426            list($r, $g, $b) = sfGetPdfRgb($rgb);
427            PDF_setcolor($this->pdf, "fillstroke", "rgb", $r, $g, $b, 0);   
428        }
429    }
430   
431    // û·Á¤òÉÁ²è
432    function writeRect($x, $y, $width, $height, $rgb = "") {
433        $this->openPage();
434        list($pdf_x, $pdf_y) = $this->posTopDown($x, $y);
435        $this->setColor($rgb);
436        PDF_rect($this->pdf, $pdf_x,$pdf_y,$width,-$height);
437        PDF_fill($this->pdf);
438    }
439   
440    // ÏÈÉÕ¤Îû·Á¤òÉÁ²è
441    function writeFrameRect($x, $y, $width, $height, $rgb, $frgb) {
442        $this->openPage();
443        list($pdf_x, $pdf_y) = $this->posTopDown($x, $y);
444        $this->setColor($frgb);
445        PDF_rect($this->pdf, $pdf_x,$pdf_y,$width,-$height);
446        PDF_fill($this->pdf);
447       
448        $this->setColor($rgb);
449        PDF_rect($this->pdf, $pdf_x+1,$pdf_y-1,$width-2,-$height+2);
450        PDF_fill($this->pdf);       
451    }
452   
453    // ľÀþ¤òÉÁ²è
454    function writeLine($sx, $sy, $ex, $ey, $rgb = "000000") {
455        $this->openPage();
456        list($pdf_sx, $pdf_sy) = $this->posTopDown($sx, $sy);
457        list($pdf_ex, $pdf_ey) = $this->posTopDown($ex, $ey);
458        $this->setColor($rgb);
459        PDF_setlinewidth($this->pdf, 1.0);
460        PDF_moveto($this->pdf, $pdf_sx, $pdf_sy);
461        PDF_lineto($this->pdf, $pdf_ex, $pdf_ey);
462        PDF_stroke($this->pdf);
463    }
464       
465    // ¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É
466    function output($filekey = "") {
467        if(isset($this->pdf)) {
468            // ¥Ú¡¼¥¸¤òÊĤ¸¤ë
469            $this->closePage();
470            // PDF¤Î½ªÎ»
471            PDF_end_document($this->pdf, NULL);
472            // ½ÐÎÏÍѥǡ¼¥¿¤Î¼èÆÀ
473            $buf = PDF_get_buffer($this->pdf);
474            $filename = $filekey . date("ymdHis").".pdf";
475                       
476            header("Content-disposition: attachment; filename=$filename");
477            header("Content-type: application/octet-stream; name=$filename");
478                   
479            /*
480             * session_start()¤ò»öÁ°¤Ë¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¾ì¹ç¤Ë½ÐÎϤµ¤ì¤ë°Ê²¼¤Î¥Ø¥Ã¥À¤Ï¡¢
481             * URLľÀܸƤӽФ·»þ¤Ë¥¨¥é¡¼¤òȯÀ¸¤µ¤»¤ë¤Î¤Ç¶õ¤Ë¤·¤Æ¤ª¤¯¡£
482             *
483             * Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
484             * Progma: no-cache
485             *
486             */
487            header("Cache-Control: ");
488            header("Pragma: ");
489            print $buf;
490           
491            // PDF²òÊü
492            PDF_delete($this->pdf);
493        } else {
494            print("PDF¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
495        }
496        exit;       
497    }
498   
499    // ¥Õ¥¡¥¤¥ë¤Îɽ¼¨
500    function display() {
501        if(isset($this->pdf)) {
502            // ¥Ú¡¼¥¸¤òÊĤ¸¤ë
503            $this->closePage();
504            // PDF¤Î½ªÎ»
505            PDF_end_document($this->pdf, NULL);
506           
507            // ½ÐÎÏÍѥǡ¼¥¿¤Î¼èÆÀ
508            $buf = PDF_get_buffer($this->pdf);
509            $len = strlen($buf);
510            header("Content-type: application/pdf");
511            header("Content-Length: $len");
512            header("Content-Disposition: inline; filename=". date("YmdHis").".pdf");
513                               
514            /*
515             * session_start()¤ò»öÁ°¤Ë¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¾ì¹ç¤Ë½ÐÎϤµ¤ì¤ë°Ê²¼¤Î¥Ø¥Ã¥À¤Ï¡¢
516             * URLľÀܸƤӽФ·»þ¤Ë¥¨¥é¡¼¤òȯÀ¸¤µ¤»¤ë¤Î¤Ç¶õ¤Ë¤·¤Æ¤ª¤¯¡£
517             *
518             * Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
519             * Progma: no-cache
520             *
521             */
522            header("Cache-Control: ");
523            header("Pragma: ");
524            print $buf;
525           
526            // PDF²òÊü
527            PDF_delete($this->pdf);
528        } else {
529            print("PDF¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
530        }
531        exit;
532    }
533}
534
535?>
Note: See TracBrowser for help on using the repository browser.