2009-08-04 12 views
4

Existe-t-il des convertisseurs de logiciels php/java/open source ou des bibliothèques php qui vont convertir un fichier xls en document pdf? Rundown: J'ai un code pré-existant générant des feuilles de calcul xls (environ 2002-2006, version xml pré-ouverte je crois), besoin de les transformer en PDF pour diverses raisons.PHP Conversion d'Excel (.xls) en pdfs

Été à la recherche partout, y compris ici. Je pense que j'ai juste besoin d'une bosse dans la bonne direction, je suis sûr qu'il y a déjà quelque chose qui le fait.

+0

Avez-vous envisagé de réusinage votre code pour générer directement au format PDF. Plutôt que de générer des spreadhseets Excel et de tenter ensuite de convertir? – MadMurf

+0

http://stackoverflow.com/questions/265760/generating-pdfs-with-php offre une solution pour générer des fichiers PDF en utilisant PHP – MadMurf

+0

@MadMurf, c'est ce que j'espère ne pas faire - il y a beaucoup de code pré existant impliqué. Ce serait ce que je préférerais. Cependant, le refactoring n'est pas possible la plupart du temps. – Louis

Répondre

1

Vous pouvez convertir des fichiers XLS en PDF sous Linux en installant OpenOffice avec un graveur PDF comme pilote d'imprimante par défaut.

Ensuite, vous pouvez appeler OpenOffice (à partir de PHP) en utilisant le paramètre de ligne de commande "-p" , ce qui le fera charger un fichier désigné et l'imprimer.

Par exemple, si votre fichier était "accounts.xls" vous appelleriez la commande suivante:

soffice -p accounts.xls

OpenOffice chargerait le fichier "accounts.xls" et " imprimez-le "à l'écrivain PDF , qui serait configuré pour enregistrer le document PDF au nom de fichier souhaité. GhostScript est un programme d'écriture de PDF approprié.

Le guide d'installation OpenOffice décrit comment installer et configurer pilotes d'imprimante en utilisant le « spadmin » utilitaire et traite de l'utilisation de Ghostscript comme écrivain PDF: « Open Office Guide d'installation - Annexe » http://www.openoffice.org/docs/setup_guide/appendix.html

Vous pouvez appeler OpenOffice depuis PHP en utilisant l'opérateur d'exécution de backtick, ou la fonction "exec". Vous devrez peut-être utiliser PHP pour déplacer et/ou renommer les fichiers PDF résultant:

PHP: exécution du programme Fonctions http://www.php.net/manual/en/ref.exec.php

PHP: Filesystem: Renommer http://www.php.net/manual/en/function.rename.php

OpenOffice est assez bon le traitement des fichiers XLS, mais il ne peut pas rendre parfaitement chaque fichier - si vous avez besoin de la compatibilité ultime en , vous devrez utiliser Microsoft Excel sur une plate-forme ou un émulateur Windows . "IT AsiaOne" regardé plusieurs alternatives à Microsoft Office (y compris OpenOffice) et a écrit que "tandis qu'aucun des les suites alternatives promettent ... une compatibilité totale avec Microsoft Documents créés par Office, en général, ils font un travail décent de traduire Microsoft ".doc", ".ppt" et ".xls "Formats de fichier":

IT AsiaOne - Promotions - vous pour la Picking http://it.asia1.com.sg/specials/mmedia20020724_001.html

Liens supplémentaires:

OpenOffice.org Page d'accueil http://www.openoffice.org/

Ghostscript Page d'accueil http://www.cs.wisc.edu/~ghost/

PHP Page d'accueil http://www.php.net/

stratégie de recherche Google:

openoffice pdf script linux : //www.google.com/search q = openoffice% 20scripting% 20pdf% 20linux

openoffice print "ligne de commande" ://www.google.com/search?q=openoffice%20scripting%20pdf%20linux

suivi d'une recherche de "paramètres de ligne de commande" depuis la page d'accueil openoffice.org.

ref: http://answers.google.com/answers/threadview/id/177241.html

2

Puisque PHP est capable d'exécuter des commandes via Shell dans Linux, this pourrait être un bon début.

+0

Exactement ce que j'espérais. Merci, rendra compte quand je l'ai testé! – Louis

+0

bienvenue, bonne chance;) – sepehr

+0

Avait quelques problèmes de réseau avec l'installation .. alors j'ai eu quelques autres choses todo, verra comment les choses vont demain! Je pense que je dois comprendre les configs et les éditer à la main aussi. – Louis