2013-04-05 3 views
5

Ich versuche, automatisch PDFs mit html2pdf Klasse zu generieren. Ich habe den folgenden Code, der funktioniert, nur dass jemand die PDF manuell speichern muss. Wenn jedoch ein neues Produkt hinzugefügt wird, möchte ich die PDF-Datei automatisch ohne Benutzereingriff in einem Ordner speichern und diesen Wert zur späteren Verwendung in einer Datenbank speichern. Wie gehe ich vor, um das PDF "still" zu speichern, d. H. Im Hintergrund, ohne dass Popups angezeigt werden oder der Benutzer eingreifen muss? Vielen Dank im Voraus.Speichern von PDF im Hintergrund mit html2pdf

include('pdf_content.php'); 
$content = ob_get_clean(); 
// convert to PDF 
require_once('html2pdf/html2pdf.class.php'); 
try 
{ 
    $html2pdf = new HTML2PDF('P', 'A4', 'en'); 
    $html2pdf->pdf->SetDisplayMode('fullpage'); 
    $html2pdf->setDefaultFont('Arial'); 
    $html2pdf->writeHTML($content, isset($_GET['vuehtml'])); 
    //$html2pdf->Output($file_name.'_'.date("dmY").'.pdf'); 
    $html2pdf->Output($product_id.'_'.$file_name.'_'.date("dmY").'.pdf'); 

Antwort

12

Sie können versuchen, dieses Skript aufrufen, jedes Mal ein neues Produkt hinzugefügt wird, obwohl dann würden Sie nicht wirklich im „Hintergrund“ zu tun ...

Für weitere Informationen beachten Sie bitte die Frage "How can I run a PHP script in the background after a form is submitted?"

EDIT:

Wenn Sie die Datei auf dem Server zu speichern, anstatt sie an den Browser der Ausgabe, können Sie verschiedene Parameter verwenden. See also the html2pdf-wiki. Beachten Sie, dass Sie die Datei nicht unbemerkt auf dem Computer des Benutzers speichern können!

+0

Ich bemerkte das verknüpfte Beispiel, aber ist es möglich, dass ich das Skript (nicht wirklich im Hintergrund) ausführen, ohne es Popup zu zeigen, um die pdf zu speichern? Ich möchte, dass das PDF gespeichert wird, ohne dass der Benutzer es bemerkt. Ich habe keinen Zugriff auf Shell-Skripte und würde eine andere Option (vorzugsweise über PHP-Code) bevorzugen, wenn diese Option existiert. Rgds. – nixxx

+0

aktualisierte Antwort. –

+0

Danke @Marty McVry. Die Option "F" ist was ich gesucht habe. Rgds. – nixxx