【问题标题】:How to see the pdf file contents before creating the pdf file using mpdf如何在使用 mpdf 创建 pdf 文件之前查看 pdf 文件内容
【发布时间】:2020-05-27 21:41:10
【问题描述】:

链接到我的 JsFiddle (Desired Output)

目标: 我得到的 HTML 正是我在 PDF 中所需要的,但是当我尝试在我的 codeigniter 控制器中使用 mPdf 库生成 PDF 时,Output 看起来很糟糕。

问题: 我想找到一种方法来调试此 PDF 文件中的内容以及导致输出出错的原因。我想在 PDF 变成文件之前查看生成的 HTML。

我创建 PDF 的 PHP 代码

$mpdf = new Mpdf();
$style1 = file_get_contents(base_url('public/admin/css/formstyles.css')); // external css
$style2 = file_get_contents(base_url('public/admin/bootstrap/css/bootstrap.min.css'));
$mpdf->WriteHTML($style1,\Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($style2,\Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($data['template'],\Mpdf\HTMLParserMode::HTML_BODY);
// I want to check the TOBE PDF output so that I can see what is wrong with my content here
$mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', \Mpdf\Output\Destination::FILE); // opens in browser

感谢任何帮助。

【问题讨论】:

    标签: php codeigniter pdf-generation mpdf


    【解决方案1】:

    如果我能理解你,那么你可以这样做(我已经用这种方式检查过):

    $mpdf = new Mpdf();
    $style1 = file_get_contents(base_url('public/admin/css/formstyles.css')); // external css
    $style2 = file_get_contents(base_url('public/admin/bootstrap/css/bootstrap.min.css'));
    $mpdf->WriteHTML($style1,\Mpdf\HTMLParserMode::HEADER_CSS);
    $mpdf->WriteHTML($style2,\Mpdf\HTMLParserMode::HEADER_CSS);
    $mpdf->WriteHTML($data['template'],\Mpdf\HTMLParserMode::HTML_BODY);
    
    // capture the output into buffer
    ob_start();
    $mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', \Mpdf\Output\Destination::FILE); // opens in browser
    
    // holds the buffer into a variable
    $html = ob_get_contents(); 
    ob_get_clean();
    
    // creates a html file with contents at root
    file_put_contents('htmlFile.html', $html); 
    

    而且,如果您想在不创建文件的情况下在浏览器上查看 pdf 的输出,那么您必须使用以下代码:

    $mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', \Mpdf\Output\Destination::INLINE); // Sends output inline to browser
    

    或者你也可以使用

    $mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', "I"); // Sends output inline to browser
    

    因此,每当您更改 pdf 文件的代码时,只需在浏览器中刷新生成的 pdf,您就会看到更改。

    您可以从这里https://mpdf.github.io/reference/mpdf-functions/output.html获得更多关于 mpdf 输出模式的信息

    【讨论】:

    • 它给出的输出是一个 PDF 字符串。我需要查看 HTML 以便调试它
    • 我的目标是在变成PDF之前检查内容
    • 我已经访问了该链接。在这种情况下它没有帮助。不过还是谢谢你的帮助
    • 好的,我知道了,我已经更新了我的答案。请检查它是否适合您。
    • 这会创建一个 HTML 文件,但它是空的
    猜你喜欢
    • 1970-01-01
    • 2019-10-16
    • 2022-08-17
    • 2018-09-21
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    相关资源
    最近更新 更多