2016-06-07 13 views
0

Ich möchte ein PDF-Dokument aus einem statischen HTML, das durch XSLT 2.0-Transformation gemacht.Kleines Problem mit PDF-Generierung, mit TCPDF-Bibliothek

 function ProducePDF($pdf_name, $html_page){ 
     // 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('Tony'); 
     $pdf->SetTitle('A document'); 
     $pdf->SetSubject('Information'); 
     $pdf->SetKeywords('TCPDF, PDF'); 

     // set default header data 
     $pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH,'',''); 

     // 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(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
     $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 
     $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 (optional) 
     if (file_exists(dirname(__FILE__).'/lang/eng.php')) { 
     require_once(dirname(__FILE__).'/lang/eng.php'); 
     $pdf->setLanguageArray($l);} 

     // set font 
     $pdf->SetFont('helvetica', '', 14); 

     // add a page 
     $pdf->AddPage(); 
     $html = file_get_contents($html_page); 
     // output the HTML content 
     $pdf->writeHTML($html, true, false, true, false, ''); 
     // reset pointer to the last page 
     $pdf->lastPage(); 
     //Close and output PDF document 
     $pdf->Output($pdf_name, 'FI');} 

Das Ergebnis PDF-Dokument ist here

die HTML-Quelle document

Wie Sie sehen können, TCPDF einige Müll von JS von Quelle HTML-Dokument auf der letzten Seite des erzeugten PDF erzeugt. Warum tut es so? Gibt es eine Art Workaround für dieses Problem?

+0

Ich denke, Sie müssen $ pdf verwenden-> IncludeJS ($ js); js einbeziehen [siehe hier] (http://www.tcpdf.org/examples/example_053.phps) – Jainil

+0

Es klingt wirklich, aber ich denke, dass die Engine nur eine "ganze Seite" braucht, dann braucht es Müll aus Quell-HTML. Wie auch immer, danke für die Antwort. – Twissell

Antwort

0

Da es irgendeine Antwort auf meine Frage gibt, entscheide ich mich, Antwort von this Frage als Workaround für mein Problem zu verwenden.

Ich schneide einfach den unnötigen Block aus dem Markup mit diesem regulären Ausdruck und alles funktioniert!