gpt4 book ai didi

php - 使用 "view"时如何在dompdf PDF上获取页码

转载 作者:可可西里 更新时间:2023-10-31 23:02:38 26 4
gpt4 key购买 nike

好的,所以我使用以下代码片段获取 HTML 的“ View ”,其中 PHP 变量作为 $data 加载,这样我就可以执行诸如填写 tr 之类的操作来自数据库调用或其他任何内容的数据。

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

用于诸如 $htmlPDF = getView('receipt.php', array( 'orderNumber' => $orderNumber )); 其中 $orderNumber 是然后在 HTML 中用于填充它的适当位置。例如:

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


好的,重点是,这就是我获取 HTML 的方式。然后我将它加载到我的 dompdf 变量中:

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

一切都很好。问题是让 inline php 脚本工作以获取页码/页眉|页脚。我已按照说明进行操作 here尽我所能,但我似乎无法做出正确的融合。到目前为止,没有任何错误,除了我在任何地方得到 0 页码!

是的,我看过类似 Header in PDF page using DOMPDF in PHP 的页面和 dompdf page number ,但仍然没有任何进展!我想知道 inline php 脚本是否与我将 HTML 获取为字符串的方式有关?有任何指示、想法、建议吗?

最佳答案

Update Regarding changes with version of dompdf >= 0.7.0
1. Because the dompdf_config.inc.php file has been removed from this release (and is no longer referenced) all dompdf options should be set at run time.
4. The FontMetrics class is now instantiated instead of static. To simplify migration of embedded scripts from earlier versions of dompdf we provide access to the instantiated FontMetrics class via the $fontMetrics variable. Please update your embedded scripts. For example, FontMetrics::get_font('helvetica') would now be $fontMetrics->getFont('helvetica').
~ Thanks to Dennis Ameling's answer for the updated information.

通过查看 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

关于php - 使用 "view"时如何在dompdf PDF上获取页码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com