# PDF öffnen



## Atse87 (17. Juli 2007)

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. 


```
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


----------



## Michael Engel (17. Juli 2007)

```
Header('Content-Type: application/pdf');
Header('Content-disposition: inline; filename=bla.pdf');
```

vor der ausgabe senden


----------



## Atse87 (17. Juli 2007)

meinst du so ?


```
//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


----------



## CIX88 (17. Juli 2007)

Ein Forum reicht wohl nicht um sein Problem zu lösen ?


----------



## Michael Engel (17. Juli 2007)

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.


----------



## Atse87 (17. Juli 2007)

hm...weiß auch nich, irgendwie bin ich wohl zu blöd dafür...also momentan hab ich es so:


```
<?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


----------



## CIX88 (17. Juli 2007)

> ////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.


----------



## Atse87 (18. Juli 2007)

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


----------



## CIX88 (18. Juli 2007)

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.


----------



## Atse87 (18. Juli 2007)

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


----------



## Michael Engel (18. Juli 2007)

Standartmäsig steht Output auf inline anzeigen... also genau das was du willst.
http://fpdf.org/en/doc/output.htm

Hast du vielleicht an deinen Browsereinstellungen etwas verändert das er inline pdf`s nicht anzeigt, oder irgendwelche Browser addons? Das er es einfach nur in einem Acrobat Reader Fenster öffnet ist auf jeden Fall nicht normal.


----------



## Atse87 (19. Juli 2007)

so, klappt jetzt wunderbar^^
habs jetzt so gemacht, dass ich nen neues fenster öffnet wo dann erst die pdf erzugt und gespeichert wird und dann lass ich sie mir mit nem meta refresh im selben fenster anzeigen...
danke für eure hilfe.


----------

