Ejemplo n.º 1
0
 function render(App_Grid_Filter $filter, $exportLayout, $page, $fileName, App_Template $template)
 {
     $pdf = new mypdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
     $pdf->caption = $this->caption;
     // set document information
     $pdf->SetCreator(PDF_CREATOR);
     $pdf->SetAuthor('Nicola Asuni');
     $pdf->SetTitle('TCPDF Example 048');
     $pdf->SetSubject('TCPDF Tutorial');
     $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
     // set default header data
     //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 048', PDF_HEADER_STRING);
     // set header and footer fonts
     //$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
     //$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
     // set default monospaced font
     $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
     //set margins
     $pdf->SetMargins(2, 0, 5);
     //$pdf->SetHeaderMargin(2);
     //$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
     //set auto page breaks
     $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
     //set image scale factor
     $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
     //set some language-dependent strings
     //$pdf->setLanguageArray($l);
     // ---------------------------------------------------------
     // set font
     $pdf->SetFont('helvetica', 'B', 20);
     // add a page
     // -----------------------------------------------------------------------------
     // -----------------------------------------------------------------------------
     $totalpage = $this->filter()->getTotalPage();
     if ($page == 'all') {
         $startPage = 1;
         $endPage = $totalpage;
     } elseif (is_array($page)) {
         $startPage = (int) $page['0'];
         $endPage = (int) $page['1'];
     } elseif (is_numeric($page)) {
         $startPage = $endPage = (int) $page;
     }
     if ($startPage < 0) {
         $startPage = 1;
     }
     if ($endPage == '') {
         $endPage = $startPage;
     }
     if ($endPage > $totalpage) {
         $endPage = $totalpage;
     }
     for ($i = $startPage; $i <= $endPage; $i++) {
         $filter->setPage($i);
         $list = $filter->getList();
         foreach ($list as $id => $row) {
             $pdf->AddPage($exportLayout);
             $pdf->SetFont('freeserif', '', 7);
             $pdf->SetX(5);
             $pdf->SetY(10);
             $mConfig = $filter->getModelConfig();
             $fileds = $mConfig->getFieldsList();
             foreach ($fileds as $filed) {
                 //echo $filed->input;
                 $prop = $mConfig->getPropByName($filed);
                 if ($prop->input == 'filepicker') {
                     $file = new Sys_Model_File();
                     $name = basename($row->{$filed});
                     $file = $file->fetchRow($file->select()->where("NAME=?", $name));
                     $template->assign($filed, $file->getPath());
                 } else {
                     $template->assign($filed, $this->filter()->fieldTranform($row, $filed));
                 }
                 $template->assign($filed . ":label", $this->_translate($prop->label));
             }
             $tbl = $template->getOutput();
             $pdf->writeHTML($tbl, true, true, false, false, '');
         }
     }
     //Close and output PDF document
     if ('' == $fileName) {
         $fileName = uniqid();
     }
     $filePath = App_Env::getPathOfUserTemporaryFolder() . "/" . $fileName . '.pdf';
     $pdf->Output($filePath, 'F');
     $pdf->Output(null, 'I');
     //============================================================+
     // END OF FILE
     //============================================================+
 }