Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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;

?>

  • Autor

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?

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

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

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

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.