Alexander Foken: generierte PDF Datei direkt runterladen lassen

Beitrag lesen

Hallo!

Moin Moin !

ist ja bekanntlich schon öfter diskutiert worden, dass man es nicht 100%ig sauber hinbekommt, das alle Browser eine PDF-Datei nicht öffnen sondern dass sich das Downloadfenster öffnet. ich generiere in einem Script eine pdf-Datei, und möchte das sich das Fenster dann auch direkt öffnet, mein gescheiterter Versuch sieht so aus:

...
system ("htmldoc --webpage --jpeg=50 -f $pdf_output $temp_html");

header ("Content-type: application/x-save-this-file");
header ("location: $pdf_output");

^--- Was soll das ?

Öffne binär die PDF-Datei zum lesen, und schreibe das ganze binär zum Webserver/Browser raus.

In Perl (sorry, ich kann nicht wirklich PHP):

#!/usr/bin/perl
$pdf_output='/tmp/foobar$$.pdf';
$temp_html='/tmp/whatever';
system ("htmldoc --webpage --jpeg=50 -f $pdf_output $temp_html");
print "Content-type: application/x-save-this-file\r\n\r\n";

^-- entspricht header()

open FILE,"<$pdf_output";
binmode FILE;
binmode STDOUT;
print while <FILE>;
close FILE;

Wo ich das gerade getippt habe: Es müßte noch einfacher gehen, wenn htmldoc nach STDOUT schreiben kann:

#!/usr/bin/perl
$temp_html='/tmp/whatever';
print "Content-type: application/x-save-this-file\r\n\r\n";

^-- entspricht header()

system ("htmldoc --webpage --jpeg=50 -f - $temp_html");

^-- und hier geht die PDF-Datei direkt als Stream durch den Webserver zum Browser.

Alexander