2017-09-01 16 views
0

Ich habe ein Problem beim Konvertieren von HTML in PDF (mit Dompdf) 0.8.0 und ich habe nach einer Antwort gesucht. Ich fand, dass ich die DOMPDF_ENABLE_PHP zu true ändern muss. Mein Problem ist, dass ich nicht weiß, wo ich das ändern soll oder wie.So ändern Sie die DOMPDF_ENABLE_PHP

Sorry, wenn das eine dumme Frage ist; Ich bin immer noch ein Anfänger.

Hier ist meine PHP-Code

<?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)); 
?> 

mein 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> 

die Ausgabe auf 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++; } ?> 

Antwort

0

dompdf ab 0.7.0 nicht mehr die Konfigurationskonstanten verwendet . Um die Konfiguration ändern Sie entweder in einer Option übergeben, wenn Sie Ihr Objekt instanziiert:

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

oder den Wert auf der Instanz festgelegt:

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

Bitte beachten Sie aber, dass ab 0.6.2 dompdf wird ein PHP-Dokument aus Sicherheitsgründen nicht mehr analysieren. Dies bedeutet, dass Sie die Dinge nicht so machen können, wie Sie es möchten. Diese Änderung wurde vorgenommen, um Sicherheitsbedenken zu begegnen.

Die 'isPhpEnabled' Option ermöglicht nur Unterstützung für eingebettete PHP, das heißt PHP-Code in <script type="text/php"></script>. Eingebettetes PHP kann die Struktur des Dokuments nicht ändern, es sei denn, Sie verwenden es, um direkt mit dem Canvas-Objekt oder der PDF-Rendering-Bibliothek zu interagieren. Und das Dompdf-Team empfiehlt Ihnen, diese Option nicht zu aktivieren, wenn Sie können.

Sie können immer noch das tun, was Sie wollen, aber Sie werden Ihre PDF-Generierung von PHP-Code ändern müssen so etwas wie die folgenden sein:

<?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

Vielen Dank, Sir ... –