PDF öffnen

Atse87

Grünschnabel
moin,
ich hoffe ihr könnt mir helfen, und zwar möchte ich ne neu er zeugte pdf datei in nem neuen browser öffnen, zumindest würd es mir so am besten gefallen. bis jetzt hab ich es blos hinbekommen das er die pdf mit adobe öffnet und mir im browser ne weiße seite anzeigt, allerdings möchte ich ja das er auf der seite bleibt wo ich denn button angeklickt habe.

PHP:
if($_POST('kontaktliste')){ 

//PDF erzeugen 
require["klistetest.php"]; 

}

hier wird nur buchstabensalat im IE angezeigt: "%PDF bla bla usw. "
hab da auch schon ma was zugelesen, aber irgendwie nich so ganz verstanden.

mfg
thx im voraus
 
PHP:
Header('Content-Type: application/pdf');
Header('Content-disposition: inline; filename=bla.pdf');

vor der ausgabe senden
 
meinst du so ?

PHP:
//was muss ich denn hier angeben oder kann das so bleiben ?
Header('Content-Type: application/pdf'); 

Header('Content-disposition: inline; filename=klistetest.pdf');  
$pdf->Output();

mfg
 
Also die meisten PDF Klassen senden selbstständig Header, FPDF macht das auf jeden fall. Ich dachte du willst das PDF durch lesen oder so hinschreiben. Aber nungut..

Header senden schlug fehl... nachdem es keine Warning gab wird das Error reporting aus zu sein. Schau ob du irgendwelche leerzeichen, echos oder sonstiges vor dem pdf aufruf hast. Oder Aktiviere es und lass dir sagen wo die ersten Zeichen ausgegeben wurden.
 
hm...weiß auch nich, irgendwie bin ich wohl zu blöd dafür...also momentan hab ich es so:

PHP:
<?php
	include("includes/headline.php"); 
?>	
////nen bissl html kram incl. der button kontaktliste.

<?php
if($_POST['kontaktliste']) {
$verbindung = mysql_connect ("host", "login", "pw");
mysql_select_db("db");

define('FPDF_FONTPATH', 'font/');
require("fpdf.php");

$pdf = new FPDF();
$pdf->AddPage(L);
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(20,10,"Kontaktliste");
  	$pdf->ln();
    $pdf->SetFontSize(10);
	$pdf->Cell(14,5,'KNr');
	$pdf->Cell(8,5,'Typ');
                ....
	$pdf->ln();

$sql = "SELECT * FROM kontakt";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
  $pdf->Cell(14,5,$row['KNr']);
  $pdf->Cell(8,5,$row['Typ']);
  ....
$pdf->ln();
}
Header('Content-Type: application/pdf'); 
Header('Content-disposition: inline; filename=klistetest.pdf');  
$pdf->Output();
}
?>
dachte eigentlich erwürde dann die pdf datei in nem neuen fenster anzeigen bzw. mit adobe ausgeben so wie er es auch macht wenn ich ne php datei aufrufe wo blos der code drin steht um die pdf datei auszugeben...

mfg
 
> ////nen bissl html kram incl. der button kontaktliste.

Was soll das dort oben ?

> Header('Content-Type: application/pdf');

Was soll der Header-Kram ?
FPDF sendet bereits einen Header !
Das funktioniert aber NUR dann, wenn davor keine Ausgabe zum Browser erfolgt.
Also kein HTML-Kram, keine Leerzeichen oder sonstwas.

Du kannst noch 50mal einen zusätzlichen Header reinhacken, bringt alles nichts wenn oben irgendwelche Zeichen bereits gesendet werden, was dann einen anderen Header erzeugt, der nicht zum PDF passt.
 
ah...thx, das klang ma einleuchtent ;)

////nen bissl html kram incl. der button kontaktliste. <---naja, ich hab mir gedacht das wär nicht so wichtig, also hab ich das mal nen bissl abgekürzt ;)

mfg
 
Vielleicht noch zum Schluss ein Hinweis.
Das erst allererste, was zum Browser gesendet wird, muss ein "%PDF" sein.
Davor dürfen keine anderen Zeichen stehen.
Ist dies nicht der Fall, erkennt der Browser das nicht als PDF-Stream an, und macht dann nur noch Mist.
 
also ich habs jetzt so, das wenn ich auf den button klicke die php datei in nem neuen browser geöffnet wird mit der ich die pdf datei erzeuge und dann adobe geöffnet wird und die pdf datei angezeigt wird.
geht das auch das er blos adobe öffnet oder blos den neuen browser und dort dirn dann die pdf datei anzeigt ?
ich nehme ja ma an das dann noch irgendwas in
$pdf->Output();
rein muss, kann das sein?
hab bis jetzt blos leider noch nichts dazu gefunden...
mfg
 
Zurück