PDF genaration的小问题,使用TCPDF库

时间:2016-06-07 06:45:34

标签: php html pdf tcpdf html2pdf

我想从静态HTML生成PDF文档,这是通过XSLT 2.0转换生成的。

        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');}

结果pdf文档为here

html来源document

正如您所看到的,TCPDF在生成的PDF的最后一页生成来自源html文档的JS的一些垃圾。 为什么这样做?这个问题有什么办法吗?

1 个答案:

答案 0 :(得分:0)

由于我的问题有任何答案,我决定使用this问题的答案作为我的问题的解决方法。

我只是用正则表达式从标记中删除了不必要的块,并且一切正常!