2012-03-24 7 views
1

Ich erzeuge PDF-Datei mit IoTcpdfBundle mit Symfony2, aber es ist ein seltsames Verhalten, das ich nicht verstehe.Generieren PDF Symfony2 IoTcpdfBundle

Wenn ich auf dem Controller bin, erzeuge ich die pdf-Datei wie folgt aus:

$html = $this->renderView('MyBundle:Docs:solicituddevacaciones.pdf.twig', array()); 
return $this->get('io_tcpdf')->quick_pdf($html); 

Diese Linien erzeugen, um die pdf-Datei. Alles ist in Ordnung, ich kann mit der rechten Maustaste auf die Datei klicken, um sie zu speichern, und es ist eine PDF-Datei.

Aber wenn ich einige Daten über ein Formular erhalten, und ich habe die Zeilen in der:

if ($request->getMethod() == 'POST') { 
    $year = $this->get('request')->request->get('year'); 
    $date= $this->get('request')->request->get('date'); 

    $html = $this->renderView('SoflaSoflaBundle:Documentales:solicituddevacaciones.pdf.twig', array()); 
    return $this->get('io_tcpdf')->quick_pdf($html);   
} 

Wenn ich nach rechts auf die Datei, um sie zu speichern, ist es nicht eine PDF-Datei ist, schlägt der Browser dass ich die Datei als .htm speichern sollte

Warum passiert das? Ich brauche Benutzer, um die Dateien als PDF-Dateien speichern zu können.

Benötigen Sie Hilfe mit diesem bitte.

+0

dies das seltsamste Problem überhaupt ist, und ich habe nicht in der Lage gewesen, es noch zu lösen ... –

Antwort

1

Ich hatte einige ähnliche Probleme und fand heraus, dass das Bundle inzwischen veraltet sein könnte. Ich hatte einige der Einstellungen ändern zu können, was am wichtigsten ist eine andere Header hinzugefügt Funktion der tcpdf Klasse quick_pdf in ‚Helper‘ -Ordner des Bündels:

$response->headers->set('Content-Disposition', 'attachment; filename="'.$file.'"'); 

Jetzt wird es wie ein Zauber arbeiten, ist es in der Steuerung wie der Aufruf:

 $html = $this->renderView('Bundle:Item:print.pdf.twig', array(
     'some' => $this->value, 
    )); 

    return $this->get('io_tcpdf')->quick_pdf($html, "yourFileName.pdf"); 
+0

Vielen Dank Kumpel, es funktioniert erstaunlich, aber ich möchte den Benutzer in der Lage sein Vorschau des Dokuments, bevor es gespeichert wird Ich möchte die Datei in der Vorschau anzeigen und in der Lage sein, mit der rechten Maustaste zu klicken und zu speichern.Dies löst ein 50% des Problems, das ich hatte :). Also vielen Dank. –

0

Versuchen Sie, den HTML-Code zu speichern (oder besser noch, klicken Sie mit der linken Maustaste statt mit der rechten Maustaste) und überprüfen Sie den Inhalt dieser Datei. Sie haben wahrscheinlich irgendwo einen Fehler, und diese HTML-Datei wird von Symfony erzeugt, um den Fehler zu erklären.

+0

, wenn ich die .html speichern, was ich habe, ist die Ansicht, die mich auf die pdf gebracht. Wenn ich den Inhalt der ".pdf" -Datei auswähle, habe ich den gewünschten Text. Aber ich bin nicht in der Lage, es als .pdf zu speichern :(. Ich glaube, ich habe keine Fehler, weil die .pdf sich perfekt beide Wege generiert, Empfangen von POST-Daten und mit statischem Inhalt, aber beim Empfangen von POST-Daten nicht erlaubt Ich habe versucht, die Datei als .pdf zu speichern. –

+0

Ich habe versucht, auf einen anderen Controller nach dem Empfang von POST-Werten, aber das Verhalten ist das gleiche ... –