(内联)PHP in domPDF 7.0

时间:2016-12-08 12:23:25

标签: php pdf dompdf

我从TCPDF切换到domPDF,因为在从html到pdf创建发票时处理起来似乎更方便(我在PHP上相当低职业:))。现在我创建了html文件作为PDF文件,我发现它不会在PDF中输出任何PHP - 因为我的sql数据库中的数据应该填充PDF,这有点问题。

我看到你可以在src-folder中包含的options.php中启用PHP,我试着这样做就像在手册中写的那样(并尝试了其他各种代码行)但是它并没有想工作:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);

require_once ("$root/../xxx/dompdf/autoload.inc.php");

use Dompdf\Dompdf;
use Dompdf\Options;

$options = new Options();
$options->setIsPhpEnabled('true');
$dompdf = new Dompdf($options);

$dompdf->loadHtml(file_get_contents("testdomhtml.php"));

$dompdf->setPaper('A4', 'portrait');

$dompdf->render();

$dompdf->stream("bla",array("Attachment"=>0));

显示PDF但没有任何PHP代码的输入。

如果有人会这么善良,我也会有兴趣知道为什么以及在多大程度上使PHP成为安全风险,因为我实际上想要将它用于我的业务。在不加载外部html和css文件的情况下,将它全部包装在主php文件中是否更明智?

提前多多感谢!

2 个答案:

答案 0 :(得分:0)

您的file_get_contents("testdomhtml.php")将获得文件的实际内容,并且不会在其中执行任何代码。而是使其可访问Web并将URL传递到此页面:

$dompdf->load_html_file('http://yourdomain.ext/testdomhtml.php');

答案 1 :(得分:0)

你可以做这样的事情(没有测试代码)。取代

$dompdf->loadHtml(file_get_contents("testdomhtml.php"));

使用

ob_start();
include 'testdomhtml.php';
$output = ob_get_clean();
$dompdf->loadHtml($output);

更多选项How to execute and get content of a .php file in a variable?