2017-09-01 70 views
0

我在將HTML轉換爲PDF時出現問題(使用Dompdf)0.8.0,我一直在尋找答案。我發現我需要將DOMPDF_ENABLE_PHP更改爲true。我的問題是我不知道在哪裏改變或如何改變。如何更改DOMPDF_ENABLE_PHP

對不起,如果這是一個愚蠢的問題;我仍然是一名新秀。

這裏是我的PHP代碼

<?php 

require __DIR__."/../vendor/autoload.php"; 

use Dompdf\Dompdf; 

//generate some PDFs! 
$dompdf = new DOMPDF(); //if you use namespaces you may use new \DOMPDF() 
$dompdf->loadHtml(file_get_contents("re1.php")); 
$dompdf->render(); 
$dompdf->stream("sample.pdf", array("Attachment"=>0)); 
?> 

我re1.php

<?php require '../db.php';?> 
<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<?php include '../templates/links.inc';?> 
</head> 
<body> 

<div class="container"> 
<?php 
    $countr=0;            
    $sline = explode(",", $_SESSION["hroomid"]); 
    foreach ($sline as $id) { 
    $result = $mysqli->query("SELECT r.*,rt.* FROM tbl_room r INNER JOIN 
tbl_roomtype rt ON r.`RoomTypeID` = rt.`RoomTypeID` WHERE RoomID = 
'$sline[$countr]'"); 
    $row = $result->fetch_assoc(); 
    echo $row['RoomNumber']; 
    $countr++; 
    } 
?> 
</div> 
</body> 
</html> 

上的PDF輸出:

query("SELECT r.*,rt.* FROM tbl_room r INNER JOIN tbl_roomtype rt ON 
r.`RoomTypeID` = 
rt.`RoomTypeID` WHERE RoomID = '$sline[$countr]'"); $row = $result- 
>fetch_assoc(); echo 
$row['RoomNumber']; $countr++; } ?> 

回答

0

DOMPDF爲0.7.0不再使用配置常量。要改變你要麼傳遞一個選項的配置,當你實例化對象:

$dompdf = new Dompdf(array('isPhpEnabled' => true)); 

或設置實例值:

$dompdf->setOption('isPhpEnabled', true); 

但是,請注意,由於0.6.2 DOMPDF會出於安全原因,不再解析PHP文檔。這意味着你不能按照你想要的方式做事。此更改是爲了解決安全問題。

「isPhpEnabled」選項僅支持嵌入式PHP,即<script type="text/php"></script>中的PHP代碼。嵌入式PHP無法修改文檔的結構,除非您使用它直接與畫布對象或PDF渲染庫進行交互。而且Dompdf團隊建議您儘可能避免啓用此選項。

你仍然可以做你想做的,但你需要修改PDF生成PHP代碼是類似以下內容:

<?php 

require __DIR__."/../vendor/autoload.php"; 

ob_start(); 
include "re1.php"; 
$html = ob_get_clean(); 
ob_end_clean(); 

use Dompdf\Dompdf; 

//generate some PDFs! 
$dompdf = new DOMPDF(); //if you use namespaces you may use new \DOMPDF() 
$dompdf->loadHtml($html); 
$dompdf->render(); 
$dompdf->stream("sample.pdf", array("Attachment"=>0)); 
?> 
+0

非常感謝先生...... –