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

Hi,

mir schwebt da was vor. Ich möchte aus einer Datenbank mit PHP Grafiken generieren (z.B. Diagramme). Diese Diagramme sollen dann in einem PDF Dokument ausgegeben werden.

Ich hab zuvor noch nicht mit den PDF Funktionen und auch nicht mit den Grafikfunktionen von PHP gearbeitet. Worauf muss ich achten? Brauche ich spezielle Bibliotheken oder sowas? Gibts irgendwo Mittel, welche die Arbeit erleichtern (Fertige Funktionen, Klassen)

Danke

Hi,

für die Image und Diagramm funktionen nimmt man meist die GDLib!

Diese muss installiert sein, kann also fehlen.

PDF Libraries gibt es ein paar...

http://www.fpdf.org/

Hier gibts auch ein Artikel drüber

http://www.drweb.de/php/php_pdf.shtml

Und direkt im Manual

http://de3.php.net/manual/de/ref.pdf.php

Einfach ma Googlen

http://www.google.de/search?q=php+pdf&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:de-DE:official

Gruß,

Markus

Hallo!

Um einfach Diagramme zu erstellen, empfehle ich JPGraph .

Damit kannst Du nahezu alle Diagrammtypen erstellen.

Gruß

Florian

brignt PHP eigentlich nicht von Haus aus PHP-Funktionen mit sich? Sind die ausreichend?

Wenn ich einen Webspace Anbieter habe, kann ich ja keine zusätzlichen Bibliotheken installieren.

  • 2 Wochen später...

Habe nun meine ersten PDF Probleme.

Arbeite auf XAMPP 1.4.12

Habe in verschiedenen Dokumentationen gelesen, dass das Erstellen von PDFs im Speicher unter PHP5 Probleme bereitet.

Wie muss ich das machen, ich komme auf keinen grünen Zweig.


$pdf = pdf_new();
pdf_open_file($pdf,"neu.pdf");
pdf_begin_page($pdf, 200, 200);
pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);

echo $data;[/PHP]

du hast Probleme... "welche" Probleme ?

ich empfehle mal header-Werte zu setzen. Also content-type: pdf unsw.

header und so funktioniert schon.

Meine Probleme liegen beim erstellen des PDFs.

es sollte eigentlich so funktionieren:

$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;[/PHP]

aber in PHP5 muss ein zweiter Parameter bei pdf_open_file() übergeben werden. Wenn ich den übergebe, wird das PDF aber nicht im Speicher erstellt.

Jetzt habe ich einen anderen Ansatz:


$pdfdoc = pdf_new();
pdf_open_file($pdfdoc, "neuer_test.pdf");
pdf_begin_page($pdfdoc, 595.3, 841.8);
$font = pdf_findfont($pdfdoc, "Helvetica", "winansi", 0);
pdf_setfont($pdfdoc, $font, 20);
pdf_set_text_pos($pdfdoc, 50, 795);
pdf_show($pdfdoc, "Liste");
pdf_end_page($pdfdoc);
pdf_close($pdfdoc);

readfile("neuer_test.pdf");
[/PHP]

Das PDF wird aber nicht in dem Verzeichnis meines PHP-Skripts erzeugt, sondern unter C:\Programme\apachefriends\xampp

Deswegen liefert readfile einen Fehler, da es das PDF nicht finden kann.

Was mache ich falsch? Und wieso wird das PDF nicht im aktuellen Verzeichniss erstellt?

das könnte eines der Probleme sein die bei XAMP nutzung auftreten.

Gug mal für PHP unsw. das Root-Verzeichnis gesetzt ist.

An sich "muss" das Script die Datei in dem verzeichnis erzeugen, in dem es auch selbst läuft. Weil von dem Ordner muss es ausgehen.

das Komische ist, dass eine andere Funktion schon die Datei im aktuellen Verzeichnis erstellt hat. Nur die PDF Funktionen scheinen zu "spinnen".

PHP Root: Ich hab da mehrere Dateien: php.ini, php5.ini, httpd5.conf

Da drin hab ich nichts verändert. Kenn mich da auch nicht aus.

Habe nur beim Apache in der httpd.conf das root für den Webserver geändert.

Also habe auch noch sehr grundsätzliche Probleme.

Hat PHP jetzt ohne die PDFLib überhaupt PDF Funktionen?

Ist die PDFLib in PHP schon standardmäßig integriert?

Meine Suchen im Internet stoßen mich immer auf neue Fragen.

Mit Hilfe der PDF-Bibliothek von Thomas Merz können mit PHP PDF Dateien erzeugt werden. Die Bibliothek ist unter http://www.pdflib.com/products/pdflib/index.html verfügbar. Zudem sind noch zwei weitere Bibliotheken notwendig, die JPEG Bibliothek und die TIFF Bibliothek, um PHP zu übersetzen. Diese beiden Bibliothek bereiten häufig Probleme bei der Konfiguration von PHP. Sie sollten unbedingt die Meldungen des Konfigurations-Skripts befolgen, um aufkommende Probleme zu lösen.

Beachten sie zudem die exzellente Dokumentation, die mit pdflib ausgeliefert wird. Sie gibt einen guten Überblick über die Möglichkeiten von pdflib.

Die meisten Funktionen in pdflib sind in ähnlicher Form auch in PHP vorhanden. Die Parameter sind in der Regel auch identisch. Sie sollten zudem die Grundkonzepte von PDF und Postscript verstanden haben, um das PDF Modul effizient nutzen zu können.

Alle Längen und Koordinatenangaben sind in Postscript-Punkten gemessen. Für gewöhnlich entsprechen 72 PostScript-Punkte 1 Inch, was jedoch von der Auflösung des Ausgabegeräts abhängt.

Neben diesem Modul gibt es noch ein weiteres zur Erzeugung von PDF-Dateien, basierend auf der Bibliothek ClibPDF von FastIO. Es hat eine geringfügig andere Programmierschnittstelle. Schauen Sie in die Funktionsübersicht für weitere Details.

Das PDF Module von PHP verwendet einen neuen Type von Variable Er wird pdfdoc genannt. pdfdoc ist ein Zeiger auf das PDF Dokument und wird bei fast allen Funktion als erster Parameter erwartet.

Tips zur Installation von pdflib 3.x

Seit Version 3.0 von pdflib sollten sie pdflib mit der configure-Option --enable-shared-pdflib konfigurieren.

Verwenden alter pdflib Versionen

Mit Version 2.20 von pdflib wurden einige Veränderungen an der API vorgenommen. Zudem ist Unterstützung für asiatische Zeichensätze hinzugekommen. Dies hat leider auch zu Änderungen am php4-Modul geführt (nicht php3). Wenn Sie pdflib 2.20 benutzen, dann sollten Sie die Erzeugung von Dokumenten im Speicher mit Vorsicht benutzen. Bis zur entgültigen Version 3.0 von pdflib könnte dies instabil sein. Der encoding Parameter der Funktion pdf_set_font() hat sich in eine Zeichenkette geändert. Dies bedeutet, dass anstatt von beispielsweise 4 jetzt 'winansi' verwendet werden muss.

Wenn Sie die Version 2.30 von pdflib verwenden, dann steht Ihnen die Funktion pdf_set_text_matrix() nicht mehr zur Verfügung. Diese Funktion wurde komplett entfernt. Grundsätzlich ist es ratsam die release notes der verwendeten Version von pdflib zu lesen.

Versionen von PHP4 die nach dem 9. März 2000 erscheinen unterstützen nur noch die Versionen >3.0 von pdflib. PHP3 sollte hingegen nicht mit Versionen >2.01 verwendet werden.

Bei Gebrauch von pdflib 2.01 sollte überprüft werden, ob die Bibliothek richtig installiert wurde. Es sollte die Datei oder ein Verweis libpdf.so im Installationsverzeichnis von pdflib existieren. Version 2.01 erzeugt nur die Bibliothek mit dem Namen libpdf2.01.so, die so nicht vom Linker des Systems gefunden werden kann. In diesem Fall müssen Sie den Verweis von libpdf.so nach libpdf2.01.so selbst anlegen.

@baba007

Ein Auszug von den Dokus von PHP und Co. hift mir nicht weiter (dachte, das hätte ich bereits oft genug erwähnt). Hab die zu Genüge gelesen, aber entweder bin ich zu blöd es zu verstehen, oder es steht nicht drin.

Ich habe hier gepostet, um eine alternative Erklärung/Formulierung zu erhalten.

Trotzdem Danke für deine Mühe.

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.