Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute!

:confused: Ich will ein PDF-Document in PHP erstellen und im Internet Explorer anzeigen.

Ich hab schon gesehen, wie im Explorer der Acrobat Reader aufgegangen ist und die Datei dargestellt hat.

Wie kann ich das aus PHP aufrufen?

Danke voraus, Kathi

Geschrieben

probier mal das aus. bei mir geht der dann im browserfenster auf:

<?php

$pdf = pdf_new();

pdf_open_file($pdf);

pdf_begin_page($pdf, 595, 842);

pdf_set_font($pdf, "Times-Roman", 30, "host");

pdf_set_value($pdf, "textrendering", 1);

pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);

pdf_end_page($pdf);

pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");

header("Content-disposition: inline; filename=test.pdf");

header("Content-length: " . strlen($data));

echo $data;

?>

Geschrieben

Danke,

ich krieg folgende Ausgabe:

%PDF-1.3 %äãÃÃ’ 5 0 obj <> stream xÅ“s áÒw3P06PIã2T)@h¨`j `Ä!¹\ I. G…7…â€üäÃ’ÜÔ¼…ä¢ÔÄ’Ô…Ì<…ÜÔÜü¢JEÃÂ,.×.!gˆendstream endobj 6 0 obj 84 endobj 4 0 obj <> endobj 8 0 obj <> >> endobj 3 0 obj <> endobj 7 0 obj <> endobj 1 0 obj <> endobj 2 0 obj <> endobj xref 0 9 0000000000 65535 f 0000000548 00000 n 0000000602 00000 n 0000000351 00000 n 0000000188 00000 n 0000000015 00000 n 0000000170 00000 n 0000000454 00000 n 0000000291 00000 n trailer <] >> startxref 649 %%EOF

Kann der Browser den Reader nicht starten?

Oder ist irgendwo der Pfad falsch eingetragen?

Geschrieben

also kathi,

wo bzw. wie läuft dein php? auf nem windooze oder linux rechner?

du musst php als modul (schimpft sich "mod_php4") am laufen haben damit es die "header" funktionen unterstützt. ich weiß nicht ob es eine php-version für win gibt die header-funktionen unterstützt?!

die komischen zeichen kommen deswegen weil der browser nicht weiß was es für daten sein sollen und der header-befehl ( header("Content-type: application/pdf"); ) der dem browser sagt was es für ein inhalt ist, greift nicht.

ciao

jayjay

  • 3 Monate später...
Geschrieben

Hi,

ich will ein PDF erstellen und hole mir vorher einige Daten aus der Datenbank und include zwei php-Ressourcedateien (mit DB-Zugriffsdaten und Hilfsroutinen).

Leider kommt immer die Fehlermeldung

"Cannot add header information - headers already sent "

Ich nutze folgende Header:

 header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello_php.pdf");
print $buf;
[/PHP]

Ohne die DB-Abfragen und das Includen vorher funktioniert auch die Generierung und die PDF wird dargestellt, aber leider brauche ich ja die relevanten Daten aus der Datenbank.

Woran könnte das liegen?

Ich mache doch vorher keinen Output an den Browser (vor den Headern darf ja kein Output erfolgen)?

Geschrieben

<?php
putenv("PDFLIBRESOURCE=../php/pdf-related/pdflib.upr");

include("db_connection.php");

$result = mysql_query("SELECT * FROM bestellungen where id = '$nr'");

while($row = mysql_fetch_row($result))
{

$nr = $row[0];
$kunden_id = $row[1];
$vorname_name = $row[2];
$email = $row[3];
$abteilung1 = $row[4];
$abteilung2 = $row[5];
}

$p = PDF_new();

PDF_open_file($p, "");

PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Testauthor");
PDF_set_info($p, "Title", "Hello world (PHP)");

PDF_begin_page($p, 595, 842);

$font = PDF_findfont($p, "Arial", "host", 1);

if ($font)
{
PDF_setfont($p, $font, 18.0);
}

PDF_set_text_pos($p, 50, 700);

PDF_show($p, $email);
PDF_continue_text($p, "(test test)");

PDF_end_page($p);
PDF_close($p);

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello_php.pdf");

print $buf;

PDF_delete($p);

?> [/PHP]

In der includeten Dateien steht auch nur PHP-Code, in dem Falle die DB-Daten + Connect.

Ich hab nirgendwo ein echo oder so, auch keine Leerzeichen vor dem <?php Tag.

Ist die DB-Abfrage schuld? Alternative?

Geschrieben

Wo wir da mal beim Thema sind: Ich komme nicht mal dazu eine pdf-datei zu erzeugen:

Fatal error: PDFlib error: Beta expired - retrieve new version from www.pdflib.com

Egal ob ich eine gerade frisch gesaugte dll nehme oder eine selbst kompilierte - Immer kommt diese Meldung. Unter Win2k hab ich das Problem.

Weiss jemand woran das liegt ?

MfG

Geschrieben
Originally posted by Spike

Betaversion von pdflib?!?

Welche pdflib-Version hast du denn, und welche php-Version?

Gerade gezogen hab ich die pdflib 4.0.3 und auf der Kiste hier ist ein php 4.0.6.

Bei der pdflib ist aber eine Version für PHP 4.0.6 dabei.

MfG

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...