一尘不染

使用“视图”时如何在dompdf PDF上获取页码

php

好的,所以我使用以下代码片段获取加载了PHP变量的HTML的“视图”,$data以便可以执行诸如tr从数据库调用或其他方法填充数据的操作。

function getView ($file, $data=NULL) {
    if (!empty($data)) extract($data);
    ob_start();
    if (is_file($file)) include($file);
    return ob_get_clean();
}

用于类似HTML的位置,然后在HTML中使用$htmlPDF = getView('receipt.php', array( 'orderNumber' => $orderNumber ));Where $orderNumber来填充适当的位置。例如:

<h1>You Order #<?= $orderNumber; ?></h1>

好的,关键是,这就是我获取HTML的方式。然后,将其加载到我的dompdf变量中,如下所示:

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();

哪个都很棒。问题在于使inline php脚本能够正常工作以获取页面编号/页眉|页脚。我已尽力遵循这里的指示,但似乎无法做出正确的混合。到目前为止,没有任何错误,除了我在任何地方都可以获得
0 页码!

是的,我查看了使用PHP中的DOMPDFdompdf页号的PDF页中的Header之类的页面,但根本没有前进的方向!我想知道inline php脚本编写是否与如何将HTML作为字符串获取有关?有任何指示,想法或建议吗?


阅读 468

收藏
2020-05-29

共1个答案

一尘不染

__关于 > = 1的changes版本的
更新
。由于dompdf_config.inc.php文件已从此发行版中删除(并且不再被引用),因此应在运行时设置所有dompdf选项。
4.现在实例化FontMetrics类而不是静态类。 为了简化从dompdf早期版本的嵌入式脚本的迁移,我们提供了通过$
fontMetrics变量访问实例化的FontMetrics类的功能。
请更新您的嵌入式脚本。 例如,FontMetrics ::
get_font(’helvetica’)现在将是$ fontMetrics- > getFont(’helvetica’)。
〜感谢 Dennis
Ameling
回答,以获取更新的信息。dompdf
0.7.0


通过查看dompdf_config.inc.php文件找到了我的答案。事实证明,DOMPDF_ENABLE_PHP设置为false从而导致内联php脚本被忽略。我简单地编辑dompdf_config.custom.inc.php了以下内容,一切都很好,并且可以使用中的更高版本的代码view

~~~~

在dompdf / dompdf_config.custom.inc.php中

<?php
    define("DOMPDF_ENABLE_PHP", true);

在运行时

$dompdf->set_option("isPhpEnabled", true);

然后,在我的html文件中

<body>
    <script type="text/php">
        if ( isset($pdf) ) {
            // OLD 
            // $font = Font_Metrics::get_font("helvetica", "bold");
            // $pdf->page_text(72, 18, "{PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(255,0,0));
            // v.0.7.0 and greater
            $x = 72;
            $y = 18;
            $text = "{PAGE_NUM} of {PAGE_COUNT}";
            $font = $fontMetrics->get_font("helvetica", "bold");
            $size = 6;
            $color = array(255,0,0);
            $word_space = 0.0;  //  default
            $char_space = 0.0;  //  default
            $angle = 0.0;   //  default
            $pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
        }
    </script>
    <div

如果您走这条路,别忘了重启 Apache

2020-05-29