2016-08-04 36 views
0

Ich möchte ein HTML zu einem PDF drucken. In dem Projekt verwende ich symfony und twig, um die Vorlage zu rendern. Wenn ich das HTML zum Browser zurückgebe, sieht es gut aus. Und es sollte etwa 10 Seiten sein.dompdf - nur zwei Seiten in pdf

Aber wenn ich versuche, das PDF zu erstellen, bekomme ich nur zwei Seiten.

$html = $this->render('offer/print.html.twig', array('offer' => $Offer)); 

$options = new Options(); 
$options->setIsRemoteEnabled(false); 

// instantiate and use the dompdf class 
$dompdf = new Dompdf($options); 
$dompdf->setPaper('A4'); 

// Render the HTML as PDF 
$dompdf->loadHtml($html); 
$dompdf->render(); 
$dompdf->stream(); 

PHP 7 Symfony 3.0.9 dompdf 0.7.0

Es ist sieht nicht wie der HTML-Code im Browser. Ich muss das CSS später debuggen. Kann mir jemand sagen, warum ich nur zwei Seiten in der PDF bekommen?

+0

Warum überhaupt Ausgangspuffer? Wenn der Render-Aufruf die gerenderten Daten an $ html zurückgibt, dann gibt es KEINEN Punkt in der Pufferung, der $ html widerspiegelt, nur damit Sie in $ output aufnehmen können. warum nicht einfach $ output = $ this-> render ... 'stattdessen? –

+0

@MarcB ich habe das auch versucht. und auch $ dompdf-> loadHtml ($ this-> render()); – kristof

+0

Schwer zu sagen, ohne die richtige HTML-Ausgabe und CSS, Dompdf kann ein Pita zu handhaben sein. Stellen Sie sicher, dass Sie auch die richtigen Dimensionen in Ihrem CSS festgelegt haben – DarkBee

Antwort

0

interessant scheint es das Problem ist die render() Funktion. Wenn ich stattdessen renderView() verwende, bekam ich meine Ausgabe über mehrere Seiten.

render() gibt auch die HTTP-Header zurück. Aus diesem Grund habe ich ein kaputtes PDF mit der Header-Information auf der ersten Seite und alle Inhalte auf der zweiten Seite.

Gerade die CSS nicht funktioniert, aber das ist ein anderes Thema :)

0

Bitte laden Sie Datei Zweig. Ich denke, die Probleme mit dir twig css.