31 votes

Quelque chose comme Crystal Reports pour PHP?

Je suis à la recherche de quelque chose qui fonctionne en PHP et est similaire à crystal reports. En gros, j'ai besoin d'avoir une mise en page de configuration qui signifie que je peux sortie factures simplement en insérant les données, puis de l'envoyer à une imprimante.

Le plus proche que j'ai trouvé pour l'instant est PDFB, mais C'est un peu une douleur comme il doit avoir un positionnement précis.

J'aimerais avoir quelque chose qui pourrait générer une facture basée sur un modèle (de préférence à base de XML), puis la sortie d'un formulaire facile pour nous de les imprimer (PostScript serait sympa!)

Il doit avoir le support des codes barres trop (bien que ceux-ci peuvent être générés comme une image GD)

Une autre exigence est que ce doit être de la SOIE

12voto

vartec Points 53382

Utilisation de XML + XSL:FO avec Apache FOP via PHP-JavaBridge.

Voici comment: http://wiki.apache.org/xmlgraphics-fop/HowTo/PHPJavaBridge

PostScript serait sympa!

De nombreuses imprimantes PostScript comprendre PDF aussi.

7voto

Ivan Vučica Points 5418

J'ai utilisé Spreadsheet_Excel_Writer en PHP, et il est assez bon. Pas de WYSIWYG, mais il génère des fichiers XSL, et je suis heureux avec elle. Par la suite, vous pouvez utiliser OpenOffice macro pour convertir le document de PDF. Il fonctionne en ligne de commande, ergo, il travaille à partir de scripts PHP trop.

Ou ici en est encore mieux.

Utiliser OpenOffice pour convertir un template Smarty. Smarty est un moteur de refroidir moteur de template pour PHP, je le recommande à cette fin. Ensuite, générer un pur HTML à l'aide de PHP avec Smarty. Enfin, il suffit de convertir le HTML généré en PDF à l'aide de ladite méthode.

Les rapports Révolutionné (tm).

EDIT Jun6 2009 Modded bas? Ah, tant pis.

De toute façon, cette méthode fonctionne sur un serveur headless sans X11. J'ai pris le script à partir du lien mentionné (sauf que j'ai mis en préexistante de la collection "Standard" au lieu de "DannysLibrary") et puis j'ai exécuté cette commande à partir d'une machine Windows à l'aide de Mastic, et X a été arrêté sur la machine distante, et l'AFFICHAGE de la variable n'a pas été fixée, et ... bien, en tout cas, il n'y a aucun moyen OOo pourrait trouver X11 connecter.

$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)"

Cela fonctionne, et je suis sûr que ce serait le grand travail pour quelqu'un qui avait besoin de la conversion à partir d'un autre format en fichier PDF, y compris la production de rapports imprimables à partir de code HTML. Par l'édition de la macro que vous pourrait peut-être même obtenir OOo pour lire directement à partir de stdin ou de votre service temporaire de l'URL, et la sortie en fichiers prédéfinis. Le script sur le lien est assez simple une fois que vous avez élémentaires du code de l'expansion.

Résumé:

  • générer des rapports aux formats XLS ou HTML
  • convertir
  • même si c'est OOo, il travaille sur des machines sans tête

EDIT 9 Juin 2009 J'ai essayé de mettre en œuvre un convertisseur en ligne de cette façon. Vous devriez faire de l'exécution de PHP sous le même utilisateur sous lequel vous avez créé des macros. Cet utilisateur apparemment ne peut pas être www-data. J'ai essayé d'utiliser suphp, mais pour quelque raison il n'a pas changé l'utilisateur correctement (posix_getuid() cesse de revenir 33 qui est www-data). Je vais modifier cette fois je résoudre ce problème.

MODIFIER le 26 Juin 2009 Suppose qu'il m'a fallu un certain temps pour en rendre compte. Oui, cela fonctionne avec suphp. Je suis toutefois pas en mesure de montrer en live, puisque le seul serveur que j'ai fonctionne relativement critiques application web qui ne sont pas professionnels de l'audit de sécurité. Cela signifie que l'une des choses dont nous dépendons pour protéger le backend est que l'utilisateur sous lequel frontend court, c'est un très très utilisateur non privilégié (comme www-data). Ne demandez pas :-)

Espérons que cela aide quelqu'un: oui, convertir en PDF avec OO.o est tout à fait réaliste. Il y a même une certaine distance l'appel de soutien dans OO.o mais je n'ai pas d'étude que juste pour les fins de la rédaction du présent.

6voto

elviejo Points 2758

J'ai utilisé le eclpse en php: "BIRT Projet"

http://www.eclipse.org/birt/phoenix/

De la conception de votre rapport dans Eclipse. Puis le télécharger à votre serveur (il doit être en cours d'exécution de tomcat), je sais. Ensuite, vous pouvez appeler ce rapport à partir de votre application php vous pouvez envoyer les paramètres à l'état via la chaîne de requête:

/myreport.birt?param=var&param2=var2

Nous avons 4 ans d'application de travailler comme cela jusqu'à présent. Autour de 100 rapports et elle fonctionne vraiment bien.

Bien sûr, il est open source.

Bonne chance

5voto

Martijn Laarman Points 8097

Si vous avez accès au serveur, vous pouvez aussi aller pour les Objets de Formatage XSL par Apache FOP. XSL-FO est basé sur XML et prend en charge beaucoup de formats de sortie y compris les PostScript et PDF

4voto

lsdr Points 610

Découvrez PHPReports, il peut s'adapter à vos besoins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X