header
Informatique

php, exec et fop

parArkenle 13.Jul.2009

Problématique du jour : générer du PDF...avec un script php.

J'ai trouvé 2 solutions :
  • FPDF
  • FOP
FPDF est une librairie purement php permettant de générer assez facilement du PDF. Sur le papier ça parait pas mal, sauf que la création de PDF semble ne se faire que programaticallement : super pratique et super simple à maintenir !

D'où ma préférence pour un produit que je connais déjà pour cette utilisation : apache FOP.

En téléchargeant les binaires de FOP on a déjà tout ce qu'il faut avec un batch (Windows) et un shell (Unix) tout prêt. Il suffit de passer les bons arguments et le tour est joué, rien à développer et rien à intégrer donc.

Seule problématique : arriver à lancer FOP depuis mon script php.

On peut théoriquement faire ça assez facilement avec la commande exec :
exec(escapeshellarg("fop -xml monfichierxml.xml -xsl monfichierxsl.xsl -pdf monfichierpdf.pdf"));

Ok super. Sauf que je viens de perdre 2 bonnes heures pour comprendre que dans les chemins d'accès au fichier xml, xsl et pdf, on doit doubler les slash...putain.

Donc :
exec(escapeshellarg("fop -xml c:\ServiceInvoice_Proto_Template_001.xml -xsl c:\ServiceInvoice_Proto_Template_001.xsl -pdf c:\ServiceInvoice_Proto_Template_001.pdf"))
MARCHE PAS !!!

exec(escapeshellarg("fop -xml c:\\ServiceInvoice_Proto_Template_001.xml -xsl c:\\ServiceInvoice_Proto_Template_001.xsl -pdf c:\\ServiceInvoice_Proto_Template_001.pdf"))
MARCHE



Tags : fop  php  exec 
commentaires
Anonyme
28.08.2009  04:22
MIRCE


Code de confirmation
Confirmer

Les cigares, vous les aimez comment ?
23%
70%
7%