【问题标题】:Can't print to PDF in Slim Framework, Twig, and DomPDF无法在 Slim Framework、Twig 和 DomPDF 中打印为 PDF
【发布时间】:2016-07-28 23:12:52
【问题描述】:

我一直在努力解决这个问题,但我无法让它工作,尽管在其他一些帖子中他们说你可以使用 Twig 的 render() 函数,但我收到以下错误:

请求的 HTML 文档不包含数据。 dompdf\异常

到目前为止我的代码是:

use Dompdf\Dompdf;

$app->post('/my/path/for/printing',function()use($app){
    //echo '<p>printing to pdf ... ☺</p>';
    $request=$app->request;
    /* code for retrieving data from the database ... done.*/

    $variables = [
        'param1' =>  $param1,
        'param2' =>  $param2,
    ];

    $dompdf = new Dompdf();


    $content = $app->render('path/for/the/view.print.twig', $variables);
    $dompdf->loadHtml($content);
    $dompdf->render();
    $dompdf->stream('sample.pdf');

})->name('my.path.for.printing');

如果我渲染我的视图,数据就会正确显示。但是使用 dompdf 是行不通的。

有人知道如何解决这个问题吗?

否则,您能否举例说明如何在 PDF 中打印 Twig 视图?

【问题讨论】:

    标签: pdf twig slim dompdf


    【解决方案1】:

    render() 不返回 HTML。试试:

    $content = $app-view->fetch('path/for/the/view.print.twig', $variables);
    

    【讨论】:

    • 这部分现在可以工作了。但是,我还不能让它工作。我现在有更多问题,例如permission denied on unlink() function。我正在尝试其他软件包,但仍然到处都有错误。我不能让它工作! :( 我试过 fpdf ,它只在屏幕上打印出坏字符。:( 我无法在 Slim Framework 2.x 上制作这些 PDF 包 :( 有什么想法吗?
    • 我在 Windows 7 上遇到了这个问题……有什么提示可以解决吗?权限问题报告在C:\Users\Me\AppData\Local\Temp
    • dompdf 使用临时目录来存储远程资源(例如图像)。默认情况下,它使用sys_get_temp_dir() 返回的值。如果您没有对该位置的读/写访问权限,您可以尝试使用$dompdf-&gt;set_option('tmpDir', '...'); 修改这些文件的存储位置(填写您的临时目录)。
    • @BrianS 谢谢,我可以更改目录。但是,我仍然无法解决这个 unlink() 权限被拒绝的问题。这让我发疯。我无法从服务列表中找到 Apache2.4 来检查权限。我去这个文件夹,检查了所有的权限,什么都没有。这不起作用。
    • 欧凯。我通过注释FontMetrics.php 文件中的所有unlink() 函数解决了这个问题,它终于可以工作了。
    猜你喜欢
    • 2018-08-13
    • 1970-01-01
    • 2012-08-20
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多