Aide - Recherche - Membres - Calendrier
Version complète : PHP creation de PDF
Forum Développeur - Administration serveur, programmation et base de données > Programmation > PHP
moths-art
Bonjour à tous :

Je cherche actuellement un moyen idéal pour traiter du contenu. Mon objectif est de permettre la saisie d'un texte sur une page admin et d'en créer automatiquement des pages HTML et du PDF voir du PS (PostScript).
Mes recherches sur les extensions de PHP m'ont orienté vers clibPDF et PDFlib qui sont deux extensions Pear quasiment similaire.
Cependant, ayant testé le XSL avec PHP5 depuis quelque temps...j'aimerais idéalement utilisé du XSL-FO qui me rendrait bien des services.
Cependant, je n'ai trouvé que peu d'article dessus et ne suis pas sur que des librairies de PHP permettent de traiter du Formatting Object.
(je n'ai que trouver le très célèbre FOP en java.
Qu'en pensez-vous?
Vers quoi dois-je m'orienter?
qwix
Si tu es motivé pour utiliser les formatting objects pourquoi pas, cependant je n'ai jamais essayé ça avec PHP je ne peux donc pas te dire si ça marche, ni même comment ça marche. Je pense qu'on peut peut-être utiliser ça avec xslt_process mais bon, je n'en suis pas sur du tout.

Sinon tu as pensé à regardé du côté de FPDF ?
www.fpdf.org

smile.gif
moths-art
Oui, Qwix : j'ai bien regardé du côté de FPDF : j'ai vu que c'était une librairie libre mais qu'il lui manque encore le formating object...donc ça serra la roue de secours si jamais. J'attend avant de me lancer dans un projet trop ambicieux donc je préfère faire le tour de ce qui existe.
Pour indication: je ne suis pas limité par les librairies : je peux utiliser toutes les librairies PEAR ainsi que PHP 5 car la finalité serait de l'utiliser soit en locale soit sur serveur dédié donc pas de soucis à ce niveau.
J'utiliserais donc la classe XSLTProcessor dans PHP5 qui me facilitera bien la tache...
Le problème c'est qu'on utilise un fichier xsl pour parser un contenu XML avec cette classe et qu'on se retrouve avec un fichier FO.Ce fichier Fo permet de faire une quantité de chose comme du PS ou du PDF mais il faut un convertisseur et j'ai bien peur qu'il n'existe rien de concret en PHP.
Jusqu'à preuve du contraire.
jep
Si tu as accès à ton serveur et que tu peut installer un programme tiers pour gérer FO, tu peut l'utiliser via PHP grace au fonction d'appelle de commande shell :

> http://fr.php.net/exec

De même, tu peut interfacer Java avec PHP :

> http://fr.php.net/java
moths-art
Merci Jep. C'est vrai...je commençais à y penser.
Bon, j'suis pas un expert sous linux mais je devrait me débrouiller.
(prise de tête en prévision)
En revanche, je suis plus favorable pour du python que du java : rapidité, license gnu et personnes qualifiées dans le domaine dans mon entourage oblige. (un certain dégout de java aussi...jamais vraiment gobé la pillule)
M'enfin, j'aurais espérer une classe entièrement php. On sait jamais ce que l'avenir nous réserve et ça ne m'étonnerais pas que j'ai dans l'avenir le même problème avec un serveur mutualisé...
qwix
Oublies la solution de exec, car, cette fonction est souvent désactivée pour des raisons de sécurités, tout comme shellexec et consort ainsi que les opérateurs de backtick. De plus si ça tourne en local et que tu n'es pas sous unix ça ne marchera pas.

Je ne comprends pas pourquoi tu t'obstine à utilises le FO tu veux générer un PDF de documents, et ce à la volée ? Personellement je trouve que les FO c'est ultra verbeux, et c'est surement plus efficace d'utiliser FPDF ou PDFlib mais bon, ce n'est que mon avis wink.gif

smile.gif
Thanh
J'ai utilisé FPDF et PDF Lib, c'est la crème les deux librairies. FPDF est plus accessible mais offre moins de possibilités(enfin dans mes souvenirs, car j'ai plus utilisé le second depuis deux ans).
moths-art
Ok, merci à tous.
Bon, pour l'exec, je ne peux pas trop l'envisager pour l'instant de toute façon...et il me faudrait une plate-forme en Unix ce qui ne me déplairait pas mais bon.
J'avais trouvé le package xml_fo2pdf (de Pear) qui convertit un fichier xsl-fo en soit du pdf, du ps, pd etc
ça m'a l'air plutôt pas mal même si le fo est plutôt pompeu.
Je vais essayé les 2 (FPDF et FO) tant que j'ai encore un peu de temps en créant 2 classes distinctes.
Fo me parait être un language d'avenir bien qu'il soit rebutant au premier abord.
De plus, toutes mes données sont actuellement en XML et parsé à l'aide d'une classe XSLTransformer dans les 2 cas le travail s'avère plutôt rude.
Mon but final est d'avoir des classes génériques ou j'aurais idéalement seulement les fichiers XSL à transformer.
Mais je penses que j'ai assez d'infos sous la main.
Je vous ferais part de mes découvertes et énervements...@+
qwix
Ha sino pour exec je viens de me rappeler qu'en fait ça marchais sous windows aussi, il suffit de donner la bonne commande à exécuter mais bon c'est pas trop conseillé d'utiliser ça, à moins de ne pas pouvoir faire autrement.

smile.gif
moths-art
Non, de toute façon je ne l'utiliserais pas...
Je crois que ça ferais hérisser les cheveux de n'importe quel admin linux.Je crois que tu bosses avec d'ailleurs : quel distrib?(bon je sais, je m'égarre...)
qwix
Ben je suis à fond pour des serveurs UNIX moi lol.

Mais je n'ai pas de distribution préférée en particulier, surtout que je ne suis pas admin système alors y'a plein de trucs que je ne sais pas faire.

Mais je sais que généralement les serveurs c'est fedora et debian souvent.

Maintenant y'a surement d'autres distributions qui marchent bien, mais bon je connais pas tout lol.

smile.gif
liguorien
salut smile.gif

QUOTE
En revanche, je suis plus favorable pour du python que du java : rapidité...

Euh, il ne faut pas confrondre quantité de code et rapidité... python étant interprêté, il est environ 10 fois plus lent que Java pour parser de gros document (c'est le cas avec du xsl-fo). Voici un lien qui pourrait t'être utile smile.gif (si jamais tu choisi le camp du java ou c++ tongue.gif)

QUOTE
Je ne comprends pas pourquoi tu t'obstine à utilises le FO tu veux générer un PDF de documents, et ce à la volée ? Personellement je trouve que les FO c'est ultra verbeux...
Oui c'est vrai que le XSL-FO seul est verbeux, mais si on le génère dynamiquement avec un XSL-T ça reste moin verbeu que FPDF wink.gif (pour un document complexe en tout cas)

smile.gif
moths-art
Perso, qwix : j'ai un peu travaillé sur la debian pour de l'admin en ligne de commande avec un debian.(pas de Gnome ni rien, beurk)
Je pense personnelement que Fedora est la meilleur ditrib pour des seveurs car elle est quand même suivit par une société et de personnes très réactive ce qui manque un peu à débian.(qui à d'autres avantages...)
Sinon, je me suis mis à Ubuntu sur ma bécanne perso et j'aime bien mais ça reste qu'un gadget encore...php5 pas installé, photoshop qui me manque etc.
Mais j'y passe petit à petit.
Liguorien : merci de m'encourager pour le xsl-fo. Je connais bien XSL et XPath maintenant donc ça ne devrait pas poser un gros problème...
Pour python, c'est assez suptille question rapidité en fait...bien que ça soit interpréter par Zope.
A priori, c'est très interressant parce qu'il utilise facilement des bibliothèques en C ou C++ (par exemple des gros algorithmes.) et qu'il utilise une synthaxe encore plus clair et plus performante que java.
M'enfin, je ne fait que répéter les mots d'un copain qui travaille sur les 2 et qui a ça petit préférence.
Pour le lien, je crois que je l'ai déjà visité plusieurs fois ...
Bon, le C++ et le Java n'étant pas ma tasse de thé...je ne pense pas m'étendre inutilement.
voilà
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.