pdf-Konverter (solved)

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

pdf-Konverter (solved)

Postby mirko1986 » 13. October 2005 12:37

Hallo,

ich habe folgendes Problem: Ich habe Scripts erstellt, die unter WAMPP dynamisch pdf-Dateien erzeugen und auf dem Bildschirm ausgeben. Dies funktioniert auch sehr gut. Nun möchte ich diese Scripts auf eine Linux-Umgebung übertragen. Ich habe dazu zwei verschiedene Wege beschritten, die nur leider beide auf dasselbe Problem stoßen:
1. Die in der SuSE-Distribution enthaltenen Pakete apache2 und mysql installiert und gestartet
2. LAMPP installiert und gestartet.

In beiden Fällen bekomme ich beim Aufruf eines dieser PDF-Berichte nur die Meldung, dass die Funktion pdf_new() nicht existiert.

Ich habe daraufhin nach entsprechenden pdf-Modulen gesucht und bin dabei auf pdflib.com gestoßen. Dort gibt es 3 Versionen:
1. Die Lite-Version als Source-Code (habe ich compiliert, das shared-objekt kopiert und in die php.ini aufgenommen, es bleibt aber der o.g. fehler)
2. Die Free-Version ist bereits vorcompliert, läuft auch prinzipiell ganz gut, erzeugt jedoch auf jeder Seite ein Wasserzeichen, mit dem ich leider auch nicht leben kann :(
3. Die kommerzielle Versionen zu Preisen, das einem Zivi nur schlecht werden kann.

Sieht jemand hier eine Möglichkeit, wie ich pdf-Dateien mit den vorhandenen Scripts erzeugen kann, ohne
1. teuer bezahlen zu müssen
2. Software zu klauen
3. Wasserzeichen auf jeder Seite zu haben

Wäre für jeden Tipp dankbar!

Mirko
Last edited by mirko1986 on 13. October 2005 16:24, edited 1 time in total.
mirko1986
 
Posts: 18
Joined: 13. October 2005 12:17

Postby Wiedmann » 13. October 2005 12:43

Ich habe daraufhin nach entsprechenden pdf-Modulen gesucht und bin dabei auf pdflib.com gestoßen. Dort gibt es 3 Versionen:
1. Die Lite-Version als Source-Code (habe ich compiliert, das shared-objekt kopiert und in die php.ini aufgenommen, es bleibt aber der o.g. fehler)

Dann hat wohl was mit deinem kompilieren nicht geklappt. ;-) (PDF dürfte ja auch nicht bei phpinfo() auftauchen)

BTW: in den Lite Sourcen ist ja nur die Lib für PDF drin und nicht die PHP-Extension. Diese musst du dir dann noch zusätzlich über PEAR/PECL bauen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mirko1986 » 13. October 2005 12:49

Wiedmann wrote:
Ich habe daraufhin nach entsprechenden pdf-Modulen gesucht und bin dabei auf pdflib.com gestoßen. Dort gibt es 3 Versionen:
1. Die Lite-Version als Source-Code (habe ich compiliert, das shared-objekt kopiert und in die php.ini aufgenommen, es bleibt aber der o.g. fehler)

Dann hat wohl was mit deinem kompilieren nicht geklappt. ;-) (PDF dürfte ja auch nicht bei phpinfo() auftauchen)


Guck ich gleich mal nach, im Moment hab ich die Version mit den Wasserzeichen, da taucht es auf jeden Fall in phpinfo() auf...

Wiedmann wrote:BTW: in den Lite Sourcen ist ja nur die Lib für PDF drin und nicht die PHP-Extension. Diese musst du dir dann noch zusätzlich über PEAR/PECL bauen.


Dann denke ich wird es wohl dadran liegen... - wenn das keine php-Extension beinhaltet, kann ich es ja nicht in der php.ini als solche einbinden - nur komisch, dass dann beim Starten des Apaches keine Fehlermeldung kommt... - Kannst du mir erklären, wie das mit dem "bauen" geht. PEAR/PECL höre ich grade zum ersten Mal...
mirko1986
 
Posts: 18
Joined: 13. October 2005 12:17

Postby Wiedmann » 13. October 2005 12:53

Kannst du mir erklären, wie das mit dem "bauen" geht. PEAR/PECL höre ich grade zum ersten Mal...

Dann hast aber nich nicht viel mit PHP gemacht ;-)

Also normal würde das so gehen:
Code: Select all
/opt/lampp/bin/pear install pdf


oder
Code: Select all
/opt/lampp/bin/pecl install pdf

(da hat sich glaub was um neuesten PEAR, falls dieses installiert ist, geändert. Zumindest auf Windows)

Ob das aber beim XAMPP wirklich tut? Keine Ahnung. Du wirst wohl zumindest noch das devel-pakage vom XAMPP brauchen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mirko1986 » 13. October 2005 13:12

Wiedmann wrote:Also normal würde das so gehen:
Code: Select all
/opt/lampp/bin/pear install pdf


aber unnormal nich :(
No releases found for package 'pdf'


lade grade das entwicklungspaket runter... - dauert etwas

[EDIT] - das devel-paket ändert nix an der o.g. fehlermeldung - eine datei pecl gibt es übrigens nicht, hab ich vorhin vergessen zu erwähnen
mirko1986
 
Posts: 18
Joined: 13. October 2005 12:17

Postby Wiedmann » 13. October 2005 13:33

Tatsache. Das Pakage nennt sich "pdflib".

also sollte es mit:
Code: Select all
/opt/lampp/bin/pear install pdflib

gehen.

Hat du ein ganz neues PEAR auf dem Rechner tut evtl:
Code: Select all
/opt/lampp/bin/pear install pecl.php.net/pdflib

(Das ist dann der Fall, wenn pear das Kommando "list-channels" kennt.)


Oder vielelicht einfach so ;-)
Code: Select all
/opt/lampp/bin/pear install http://pecl.php.net/get/pdflib-2.0.4.tgz
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mirko1986 » 13. October 2005 13:56

pdflib hatte ich vor der installation des devels auch schonmal probiert, da kam aber auch n fehler (der gleiche der 'abc' auch kam, aber ein anderer als bei 'pdf', woraus ich geschlossen habe, dass er pdflib gar nicht kennt) - nach der installation des devels kommt jetzt ein anderer fehler oO

mirko:/home/mirko # /opt/lampp/bin/pear install pdflib-2.0.4
downloading pdflib-2.0.4.tgz ...
Starting to download pdflib-2.0.4.tgz (36,082 bytes)
..........done: 36,082 bytes
7 source files, building
running: phpize
Configuring for:
PHP Api Version: 20031224
Zend Module Api No: 20041030
Zend Extension Api No: 220040412
`phpize' failed


Warum steht hinter Configuring for nichts mehr? Is das der Grund für den fail von "phpize'? Muss der XAMPP eigentlich dabei laufen oder nicht? Kommt jedenfalls in beiden Fällen der gleiche Fehler.
mirko1986
 
Posts: 18
Joined: 13. October 2005 12:17

Postby Wiedmann » 13. October 2005 14:13

Warum steht hinter Configuring for nichts mehr?

Das ist normal.

Is das der Grund für den fail von "phpize'?

Nein. Du kannst das ganze aber auch von Hand machen.
- Archiv auspacken
- in Archiv dir "phpize" ausführen. "phpize sollte im Verzeichnis "/opt/lampp/bin" sein. (evtl. ist noch eine Versionsangabe dahinter)
- dann machst ein "./configure --help" da kannst du schauen wie der genaue Parameter für die Pfade zu deiner pdf-lib lautet.
- damit machst dann ein "./configure ..."
- "make build"
- "make install"
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mirko1986 » 13. October 2005 15:29

Wiedmann wrote:- dann machst ein "./configure --help" da kannst du schauen wie der genaue Parameter für die Pfade zu deiner pdf-lib lautet.


da bin ich jetzt gerade ;)
dort habe ich einen Parameter --with-pdflib=DIR gefunden, ich nehme an, den meinst du mit deiner Aussage oben. Was muss ich dafür eintragen? Habe mal verschiedene Pfade aus dem pdflib-Paket von pdflib.com genommen, er beschwert sich jedoch immer, dass er die pdflib.h nicht finden kann (Habe u.a. auch einmal das Verzeichnis genommen, in dem sich diese Datei befindet).

Hier ist der (verkürzte) Verzeichnisbaum des pdflib.com-Pakets, evtl kannst du daran sehen, welcher Pfad der richtige sein könnte.
.
|-- Makefile
|-- PDFlib.dsw
|-- bind
| |-- Makefile
| `-- pdflib
| |-- Makefile
| |-- c
| | |-- Carbon.r
| | |-- Makefile
...
| |-- cpp
| | |-- Makefile
...
| |-- data
| | |-- LuciduxSans-Oblique.afm
| | |-- LuciduxSans-Oblique.pfa
| | |-- blocks.pdf
| | |-- boilerplate.pdf
| | |-- nesrin.jpg
| | |-- reference.pdf
| | `-- stationery.pdf
| |-- java
| | |-- Makefile
...
| |-- perl
| | |-- Makefile
...
| |-- php
...
| |-- python
| | |-- Makefile
...
| `-- tcl
| |-- Makefile
...
|-- config
| |-- aclocal.m4
...
|-- config.log
|-- config.status
|-- configure
|-- configure.in
|-- doc
...
|-- fonts
| |-- pdflib.upr
| `-- print_glyphs.ps
|-- libs
| |-- Makefile
| |-- PDFlib.mcp
| |-- flate
...
| |-- jpeg
...
| |-- pdcore
...
| |-- pdflib
| | |-- Makefile
| | |-- PDFlib_dll.res
| | |-- libpdf.la
| | |-- libpdf_.la
| | |-- libs_libpdf.la
...
| | |-- pdf.dsp
| | |-- pdflib.c
| | |-- pdflib.dsp
| | |-- pdflib.h
| | |-- pdflib.lo
| | |-- pdflib.mcp
| | |-- pdflib.o
| | |-- pdflib.rc
| | |-- pdflib_dll.dsp
| | |-- pdflib_pdi.dsp
| | |-- pdflib_pdi_dll.dsp
| | `-- resource.h
| |-- png
...
| `-- tiff
...
|-- libtool
|-- pdflib-config
|-- pdflib-config.in
|-- progs
| |-- Makefile
| `-- pdflib
| |-- Makefile
| |-- getopt.c
| |-- pdfimage
| |-- pdfimage.c
| |-- pdfimage.dsp
| |-- pdfimpose
| |-- pdfimpose.c
| |-- pdfimpose.dsp
| |-- text2pdf
| |-- text2pdf.c
| `-- text2pdf.dsp
`-- readme.txt

Oder hat die jetzige Compilierung gar nichts mehr mit den Sachen von pdflib.com zu tun?

[EDIT] Habe gerade einmal das ./configure-Script ohne with-pdflib-Option aufgerufen, dann läuft configure ohne Probleme durch, "make build" sagt jedoch nothing to be done, und einfach nur "make" sagt, dass die pdf.c zwei header-dateien nicht finden kann (und dann folgen weitere Fehler, die wohl davon abhängig sind...)
mirko1986
 
Posts: 18
Joined: 13. October 2005 12:17

Postby Wiedmann » 13. October 2005 15:38

dort habe ich einen Parameter --with-pdflib=DIR gefunden, ich nehme an, den meinst du mit deiner Aussage oben. Was muss ich dafür eintragen?

Dann fangen wir beim Anfang an ;-)

1. Die Lite-Version als Source-Code (habe ich compiliert, das shared-objekt kopiert und in die php.ini aufgenommen, es bleibt aber der o.g. fehler)

Das hast du nur kompiliert? Idealerweise machst du da auch einen "make install". Beim Configure für die pdf-lib solltest du aber als prefix "/opt/lampp" angeben. dann landet beim install die Lib in "/opt/lampp/lib" und die Header in "/opt/lampp/include"

Beim Configure für die PDF-Extension ist es dann: "--with-pdflib=/opt/lampp"
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mirko1986 » 13. October 2005 15:57

klar hab ich auch noch n 'make install' gemacht, hat aber auch nix genützt...

nun habe ich folgendes gemacht:
# das pdflib.com-Paket nochmal neu entpackt (um den ganzen müll los zu werden), im dadurch erstellten Verzeichnis:
./configure --prefix=/opt/lampp
make
make install

# dann das Paket von pecl.php.net neu entpackt und in dem Verzeichnis:
/opt/lampp/bin/phpize
./configure --with-pdflib=/opt/lampp/ --with-php-config=/opt/lampp/bin/php-config
mirko:/home/mirko/download/pecl.php.net/pdflib-2.0.4 # make
und dann kommt das:
/bin/sh /home/mirko/download/pecl.php.net/pdflib-2.0.4/libtool --mode=compile gcc -I. -I/home/mirko/download/pecl.php.net/pdflib-2.0.4 -DPHP_ATOM_INC -I/home/mirko/download/pecl.php.net/pdflib-2.0.4/include -I/home/mirko/download/pecl.php.net/pdflib-2.0.4/main -I/home/mirko/download/pecl.php.net/pdflib-2.0.4 -I/opt/lampp/include/php -I/opt/lampp/include/php/main -I/opt/lampp/include/php/TSRM -I/opt/lampp/include/php/Zend -I/opt/lampp//include -DHAVE_CONFIG_H -g -O2 -c /home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c -o pdf.lo
gcc -I. -I/home/mirko/download/pecl.php.net/pdflib-2.0.4 -DPHP_ATOM_INC -I/home/mirko/download/pecl.php.net/pdflib-2.0.4/include -I/home/mirko/download/pecl.php.net/pdflib-2.0.4/main -I/home/mirko/download/pecl.php.net/pdflib-2.0.4 -I/opt/lampp/include/php -I/opt/lampp/include/php/main -I/opt/lampp/include/php/TSRM -I/opt/lampp/include/php/Zend -I/opt/lampp//include -DHAVE_CONFIG_H -g -O2 -c /home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c -fPIC -DPIC -o pdf.lo
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:91:28: ext/gd/php_gd.h: No such file or directory
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:93:31: ext/gd/libgd/gd.h: No such file or directory
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c: In function `zif_pdf_open_memory_image':
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:7208: error: `gdImagePtr' undeclared (first use in this function)
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:7208: error: (Each undeclared identifier is reported only once
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:7208: error: for each function it appears in.)
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:7208: error: syntax error before "im"
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:7226: error: `im' undeclared (first use in this function)
/home/mirko/download/pecl.php.net/pdflib-2.0.4/pdf.c:7226: error: syntax error before "zend_fetch_resource"
make: *** [pdf.lo] Fehler 1
mirko:/home/mirko/download/pecl.php.net/pdflib-2.0.4 #


[EDIT] Habe nun die pdf.c dahingehend angepasst, dass ich ein "#undef HAVE_LIBGD13" eingefügt habe - nun compiliert er einwandfrei - aber kann das der Sinn der Übung sein???

[EDIT2] Aber es funktioniert :-)) VIELEN DANK!
mirko1986
 
Posts: 18
Joined: 13. October 2005 12:17


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 2 guests