2011-10-28 5 views
0

HTML을 pdf로 변환하기 위해 TCPDF를 사용 해왔다.TCPDF 파일 생성 속도 향상

내가 알 수없는 이유로 7 페이지 인보이스가 생성되는 동안 5 초 안에 단일 페이지 인보이스가 생성되는 것을 확인했습니다.

최신 TCPDF 버전을 사용하고 있으며이 솔루션을 사용하여 시도해 보았지만 setFontSubsetting (false)도 설정했지만 이러한 솔루션 중 TCPDF의 느린 파일 생성이 개선되지 않았습니다.

이 프로그램의 전체 코드입니다 : 내가 가능한 무엇이든 빨리 TCPDF 실행을하기 위해, 어떤 제안을 이해할 수있을 것이다 일을하려고 한 것 같은

<?php 
set_time_limit(0); 
require('modifyDate.php'); 
require('createQuery.php'); 

//GET FORM DATA 
if(isset($_POST['submitMeshavek'])) 
{ 
$saleStart=$_POST['saleStart']; 
$saleEnd=$_POST['saleEnd']; 
$saleWeek=$_POST['weekId']; 
$growerId=$_POST['growerId']; 
$reportType=$_POST['reportType']; 
} 

//REQUIRE TCPDF 
require_once('tcpdf/config/lang/eng.php'); 
require_once('tcpdf/config/lang/heb.php'); 
require_once('tcpdf/tcpdf.php'); 

class MYPDF extends TCPDF { 

    //Page header 
    public function Header() { 
     // Set font 
     $this->SetFont('helvetica', 'B', 20); 
     // Title 
     $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M'); 
    } 

    // Page footer 
    public function Footer() { 
     // Position at 15 mm from bottom 
     $this->SetY(-15); 
     // Set font 
     $this->SetFont('helvetica', 'I', 8); 
     // Page number 
     $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M'); 
    } 
} 



// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

// set document information 
/* 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Nicola Asuni'); 
$pdf->SetTitle('TCPDF Example 018'); 
$pdf->SetSubject('TCPDF Tutorial'); 
$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 
*/ 
// SET CUSTOMIZED DATE INCLUDED HEADER 
$headerSDate=reverseLongDate($saleStart); 
$headerEDate=reverseLongDate($saleEnd); 
$header=""; 
$header.="\t"; 
$header.=Date("d-m-Y h:m:s"); 
$header.="\n"; 
$header.='מועדון המגדלים יוסי חותה פירות וירקות'; 
$header.="\n"; 
$header.='דו"ח שיווק ללקוח לתאריכים '.$headerSDate." עד ".$headerEDate; 

$pdf->SetHeaderData("","" ,"",$header); 
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); 



// set header and footer fonts 
$pdf->setHeaderFont(Array("dejavusans", '', "15")); 
$pdf->setFooterFont(Array("dejavusans", '', "12")); 

// set default monospaced font 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 

//set margins 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
$pdf->SetHeaderMargin(0); 
$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 data: 
$lg = Array(); 
$lg['a_meta_charset'] = 'UTF-8'; 
$lg['a_meta_dir'] = 'rtl'; 
$lg['a_meta_language'] = 'fa'; 
$lg['w_page'] = 'page'; 

//set some language-dependent strings 
$pdf->setLanguageArray($lg); 

// --------------------------------------------------------- 

// set font 
$pdf->SetFont('dejavusans', '', 12); 

// add a page 
$pdf->AddPage(); 
// ----------------------------------------------------------------------------- 




/* 
$regularSaleStart=reverseDate($saleStart); 
$regularSaleEnd=reverseDate($saleEnd); 
$header='<h2>מועדון מגדלים יוסי חותה פירות וירקות</h2>'; 
$header.="דוח שיווק ללקוח לתאריכים     ".$regularSaleEnd." ".$regularSaleStart; 

public function Header() { 
     // Set font 
     $this->SetFont('dejavusans', '', 10); 
     // Title 
     $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M'); 
    } 
*/ 

if($reportType=='customer') 
{ 
    include('reportType/customer.php'); 
} 
else 
    if($reportType=='newCustomer') 
    { 
     include('reportType/customerNew.php'); 
    } 
    else 
     if($reportType=='collection') 
      { 
      include('reportType/collect.php'); 
      } 
       else 
        if($reportType=='grower') 
        { 
         include('reportType/grower.php'); 
        } 

ob_clean(); 
//$pdf->writeHTML($html, true, false, false, false, ''); 
$pdf->writeHTML($html, true, 0, true, 0); 
//Close and output PDF document 
$pdf->Output('example_048.pdf', 'I'); 

$pdf->writeHTML($html, true, 0, true, 0); 
//Close and output PDF document 
$pdf->Output('examp.pdf', 'I'); 


?> 

그것은 사전에 감사를 보인다!

$pdf->multiCell($a-lot-of-params); 

텍스트를 당신이 만약 정말로 표시 :

답변

0

은 그것이 50 %까지 사용을 PDF로로드 시간을 잘라 우리를 위해, 정적 PDF 기본 방법을 사용하는 waaaay를 느리게, HTML을 사용하지 않도록 노력 속도에 신경을 ...

희망이 도움이 될 것입니다.