Pdf-Dateien erzeugen

Alles, was PHP betrifft, kann hier besprochen werden.

Pdf-Dateien erzeugen

Postby Juli » 20. December 2005 19:45

Wollte ein gif oder png Bild in einer Pdf-Datei mit einbinden.

Code: Select all
PDF_load_image


Dieser Befehl will nicht 3 und auch nicht 5 sondern 4 Parameter.

Fehlermeldung:
Entweder findet er die Datei nicht oder er kann sie nicht lesen, nicht öffnen. Drehe mich im Kreis, komme einfach nicht weiter.

Habe:
pdflib 6.0.1
Pecl 2.0.3
PHP 5.0.5
Juli
 

Postby Wiedmann » 20. December 2005 20:51

Dieser Befehl will nicht 3 und auch nicht 5 sondern 4 Parameter.

Steht ja auch in der Doku das er genau 4 will...

Fehlermeldung:
Entweder findet er die Datei nicht oder er kann sie nicht lesen, nicht öffnen.

a) seh ich hier keine Fehlermeldung. (nur eine Interpretation von dir)
b) und ohne dazugehörigen Code recht wertlos.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Image in pdf einbinden

Postby Juli » 21. December 2005 19:24

Hallo, hier meine Versuche:
Code: Select all
63   if (($image = PDF_load_image($pdf, "png", "bild.png", "")) == 0) {
64      fprintf(stderr,"Fehler: Bilddatei konnte nicht gelesen werden.\n");
65   } else {
66      PDF_fit_image($pdf, $image, 0.0, 0.0, "");
67      PDF_close_image($pdf, $image);
68   }

Fehlermeldung:
    Fatal error: pdf_load_image(): [1016] PDF_load_image: Couldn't open PNG file 'bild.png' for reading (file not found) in D:\0_Homepages\pdfprint-test.php on line 63
oder:
Code: Select all
63   if (($image = PDF_load_image($pdf, "png", "D:\0_Homepages\bild.png", "")) == 0) {

Fehlermeldung:
    Fatal error: pdf_load_image(): [1020] PDF_load_image: Couldn't open PNG file 'D:' for reading (permission denied) in D:\0_Homepages\pdfprint-test.php on line 63
oder
Code: Select all
66   $image = PDF_load_image($pdf, "png", "bild.png", "")
67   PDF_fit_image($pdf, $image, 0.0, 0.0, "");
68   PDF_close_image($pdf, $image);

    Parse error: syntax error, unexpected T_STRING in D:\0_Homepages\pdfprint-test.php on line 67
Juli
 

Postby Wiedmann » 21. December 2005 20:01

63 if (($image = PDF_load_image($pdf, "png", "bild.png", "")) == 0) {

Wo befindet sich die Datei "bild.png" auf der Platte?

63 if (($image = PDF_load_image($pdf, "png", "D:\0_Homepages\bild.png", "")) == 0) {

a) lese http://de.php.net/manual/en/language.ty ... tax.double
b) und benutze Forwardslashe ("/") in Pfadangaben

66 $image = PDF_load_image($pdf, "png", "bild.png", "")

http://de.php.net/manual/en/language.ba ... ration.php
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Juli » 21. December 2005 20:23

Hallo,

die bild.png befindet sich im Verzeichnis D:\0_Homepages\ und im Verzeichnis D:\ habe sie 2 x abgelegt. Habe es auch mit D:/bild.png und ./bild.png schon probiert.

Vielen Dank für die Links.

Es kann doch nicht so schwer sein ein Bild einzubinden. Der schwere Teil in pdf kommt doch erst noch. Muß ich beim Abspeichern der Bilder etwas beacht? Sollte ich lieber gif oder jpg wählen?
Juli
 

Postby Wiedmann » 22. December 2005 01:36

OK, hab das jetzt mal selbst ausprobiert:
63 if (($image = PDF_load_image($pdf, "png", "D:\0_Homepages\bild.png", "")) == 0) {

Das ist die Version die Funktioniert.
Aber:
- die Funktion erwartet wie gesagt immer einen vollen Pfad (auch wenn das Bild im selben Verzeichnis liegt).
- die Funktion arbeitet (komischerweise) nicht mit Forwardslash's zusammen (unter Windows).

Wie du in meinem Link zu Strings vorher gelesen hast, muss man Backslashe quoten. Also tut:
Code: Select all
if (($image = PDF_load_image($pdf, "png", "D:\\0_Homepages\\bild.png", "")) == 0) {

(Bild liegt im angegeben Verzeichnis. Script ist "egal" wo es liegt)

Wenn man da nichts falsch machen will, benutzt man hier am besten realpath() und bekommt so automatisch den für das aktuelle OS gültigen Pfad:
Code: Select all
if (($image = PDF_load_image($pdf, "png", realpath("./bild.png"), "")) == 0) {

(Bild und Script liegen im selben Verzeichnis. Welches ist "egal")


Zusammengefasst kann man sagen:
Bei der Arbeit mit der PDFLib sollte man also Pfadangaben die man in PDFLib-Funktionen benötigt immer durch realpath() jagen.


Muß ich beim Abspeichern der Bilder etwas beacht? Sollte ich lieber gif oder jpg wählen?

k.a. ich benutze das nie. Hab das selbst jetzt mit enem Jpeg getestet (PNG's hab ich keine)


BTW
noch ein Link für weiterführende Infos:
http://www.pdflib.com/products/pdflib/d ... nual-D.zip
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Bild in pdf einbinden

Postby Juli » 23. December 2005 13:29

Hallo Wiedmann,
vielen Dank für dein bemühen aber ich verstehe das nicht. Ob png, gif oder jpg immer die selbe Meldung.

Code: Select all
<?php
$pdf = PDF_new();

   if (PDF_begin_document($pdf, "", "") == 0) {
      die("Error: " . PDF_get_errmsg($pdf));
   }
   PDF_begin_page($pdf, 595, 842);

   $font = PDF_load_font($pdf, "Helvetica-Bold", "winansi", "");
   PDF_setfont($pdf, $font, 24.0);
   PDF_set_text_pos($pdf, 50, 720);
   PDF_show($pdf, "Ein Bild?");

   $image = PDF_load_image($pdf, "jpeg", realpath("./bild.jpg"), "");
   PDF_fit_image($pdf, $image, 0.0, 0.0, "");
   PDF_close_image($pdf, $image);

   PDF_end_page_ext($pdf, "");
   PDF_end_document($pdf, "");
   $buf = PDF_get_buffer($pdf);

header("Content-type: application/pdf");
header("Content-Length: . strlen($buf)");
header("Content-Disposition: inline; filename=hello.pdf");

print ($buf);
PDF_delete($pdf);
?>


Erst nichts und dann eine Adobe Fehlermeldung in eine Fenster:
Adobe Reader konnte "p0298816.fdf" nicht öffnen, da der Dateityp nicht unterstüzt wird oder die Datei beschädigt ist.

Ich habe Adobe Reader 6.0 aber das kann es ja auch nicht sein.
Juli
 

Postby deepsurfer » 23. December 2005 14:17

So wie dieses script jetzt da oben steht, funktioniert png/jpg/gif Bilder.
Ich benutze hier das AdobeReader V7 Plugin im FireFox.

Kurios, mit IE kann ich nur GIF Bilder mit diesem Script ins PDF generieren lassen.
Bei den anderen Formaten erhalte ich eine MS-PopUp Fehlermeldung
--> Datei beginnt nicht mit "%PDF-".
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Bild in pdf einbinden

Postby Juli » 25. December 2005 11:52

Habe AdobeReader V7 installiert und das Bild wird immer noch nicht angezeigt. Also daran kann es auch nicht liegen ohne Bild funktioniert die PDF Erstellung ja. Bin ratlos.
Juli
 

Re: Bild in pdf einbinden

Postby deepsurfer » 25. December 2005 12:38

Juli wrote:Habe AdobeReader V7 installiert und das Bild wird immer noch nicht angezeigt. Also daran kann es auch nicht liegen ohne Bild funktioniert die PDF Erstellung ja. Bin ratlos.


Nur mal so gegengefragt, hast du auch das generierte PDF ganz runter gescrollt (also Seitenende) ?, die Positionangabe im Script wird bei mir nicht annerkannt und das Bild ist immer ganz unten links generiert worden.
Der Ausdruck "Ein Bild ?" wird bei grösseren Bildern auch verdeckt.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Bild in PDF einbinden

Postby Juli » 25. December 2005 14:05

AdobeReader wird bei mir garnicht geöffnet. Manchmal bringt AdobeReader eine Fehlermeldung (siehe oben) und manschmal bleit die Seite leer.
Juli
 

Bild in pdf einbinden

Postby Juli » 28. December 2005 15:01

Komme immer noch nicht weiter. Will einfach keine Bilder einbinden. Texte funktionieren ja aber Bilder nicht.

Kann jemand helfen?
Juli
 

Bilder in pdf-Dateien einbinden

Postby Juli » 04. January 2006 20:29

Hallo,

Habe immer noch keine Lösung. Warum er die Bilder nicht mag.
Juli
 


Return to PHP

Who is online

Users browsing this forum: No registered users and 7 guests