Ich habe eine Funktion, die DOMPDF verwendet, um eine PDF-Datei zu generieren, die ich für das $ html-Argument festgelegt habe.DOMPDF funktioniert nicht, wenn HTML bereits vorhanden ist
function generate_pdf($html){
//DOMPDF stuff
}
Dies funktioniert, aber das Problem in ich laufe, ist, dass, wenn ich diese Funktion von einer Seite aufrufen, die bereits HTML-Inhalt hat, es funktioniert nicht.
... ausfällt
<?php
require_once '../header.php'; //This has HTML content in it.
$html = '<h1>stuff</h1>';
generate_pdf($html);
?>
Dies scheitert auch ...
<?php
echo 'stuff';
$html = '<h1>stuff</h1>';
generate_pdf($html);
?>
Works ...
<?php
$html = '<h1>stuff</h1>';
generate_pdf($html);
?>
Gibt es eine Möglichkeit, um dieses?
Inhalt von function generate_pdf($html)
function generate_pdf($html){
//Get the necessary dompdf files
include_once DOMPDF_PATH . '/autoload.inc.php';
// instantiate and use the dompdf class
$dompdf = new \Dompdf\Dompdf();
$dompdf->loadHtml($html);
// Render the HTML as PDF
$dompdf->render();
//Output the PDF
$dompdf->stream();
}
Beachten Sie, dass die Datei, in der diese Funktion einen Namensraum lebt, hat, das ist so, warum $dompdf = new \Dompdf\Dompdf();
falsch erscheinen könnte, aber diese Linie funktioniert gut.
Vielleicht ist das mein Problem. Wenn HTML vor und nach (vor allem Kopf- und Fußzeile) kommt, würde das ein Problem verursachen? – gtilflm
Ich denke schon, ja. Sie sollten Ihren vollständigen HTML-Code in einer zusätzlichen PHP-Datei zusammenstellen und zusammenfügen. – Johannes
Ich habe gerade einen anderen Test gemacht und meine Frage aktualisiert. In meiner Funktion habe ich von 'require_once DOMPDF_PATH geändert. '/autoload.inc.php'; 'zu' include_once DOMPDF_PATH. '/autoload.inc.php'; '. Der HTML-Code (oder irgendetwas anderes) vor dem Funktionsaufruf gibt mir jedoch immer noch die Möglichkeit, PDF-Header, die bereits gesendet wurden, nicht zu streamen. Also, ich glaube nicht, dass das Problem HTML nach ist. Verstehst du, was ich meine? – gtilflm