TCPDF错误:“有些数据已经输出,无法发送PDF文件”

时间:2017-08-03 05:37:42

标签: php html pdf-generation tcpdf

我正在使用TCPDF生成pdf文件。

<form method='post'>
    <input type='submit' name='create_pdf' class='gs-btn-3' value='Create PDF'/>
</form>
<?php 
    if (isset($_POST["create_pdf"]))
        {
            require_once("myPDF/TCPDF/tcpdf.php");
            $obj_pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
            $obj_pdf->SetCreator(PDF_CREATOR);
            $obj_pdf->SetTitle('Thisi is Serena first PDF example');
            $obj_pdf->SetHeaderData('', '', PDF_HEADER_TITLE, PDF_HEADER_STRING);
            $obj_pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '',PDF_FONT_SIZE_MAIN));
            $obj_pdf->SetFooterFont(Array(PDF_FONT_NAME_DATA, '',PDF_FONT_SIZE_DATA));
            $obj_pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
            $obj_pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
            $obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
            $obj_pdf->SetMargins(PDF_MARGIN_LEFT, '5', PDF_MARGIN_RIGHT);
            $obj_pdf->SetPrintHeader(false);
            $obj_pdf->SetPrintFooter(false); //true
            $obj_pdf->SetAutoPageBreak(TRUE, 10);
            $obj_pdf->SetFont('dejavusans', '', 14);
            $obj_pdf->AddPage();

            $content = '
                        <h3 align="center"> Export HTML Table data to PDF using TCPDF in PHP</h3>
                        <table border="1" cellspacing="6" cellpadding="4">
                            <tr>
                                <th width="25%" align="center">Company Name</th>
                                <th width="25%">Contact</th>
                                <th width="10%">Address</th>
                                <th width="10%">Phone</th>
                                <th width="10%">Modify by</th>
                                <th width="10%">Modify on</th>  
                                <th width="10%">EDIT</th>                           
                            </tr>
                            if(isset($this->culist) && is_array($this->culist) && sizeOf($this->culist) > 0) {
                            foreach($this->culist as $key=>$value) {    
                            <tr>
                                <td style="width: 25%;">
                                    <?php echo $value->companyname; ?>                      
                                </td>
                                <td style="width: 25%;">
                                    <?php echo $value->firstname; ?>
                                </td>
                                <td style="width: 10%;">
                                    <?php echo $value->address; ?>
                                </td>
                                <td style="width: 10%;">
                                    <?php echo $value->phone; ?>
                                </td>
                                <td style="width: 10%;">
                                    <?php echo $value->modified_by; ?>
                                </td>   
                                <td style="width: 10%;">
                                    <?php echo $value->modified_on; ?>
                                </td>                               

                            </tr>
                            }
                        </table>
                            ';

                            $obj_pdf->WriteHTML($content, true, false, true, false, '');
                            ob_end_clean();

                            $obj_pdf->Output('sample.pdf', 'I');
                }

            ?>

有两个错误,

首先是“TCPDF错误:某些数据已经输出,无法发送PDF文件”。我试过“ob_end_clean();” 之前“$ obj_pdf-&gt;输出('sample.pdf','I');”,它显示了许多无法读取的代码。

其次,生成的表不是来自上面显示的脚本,而是表来自视图。

任何可以帮助我的人?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我知道这是一个非常古老的问题。我确实有一个答案,至少在我的场景中是这样。 即使使用 ob_end_clean() 并且没有输出也会发生相同的错误。 奇怪的是,当我删除 ob_end_clean();它得到输出为pdf