2009-10-01 7 views
8

Je veux ajouter une fonction d'importation de mots à notre CMS, le seul problème que je n'arrive pas à trouver est une bonne bibliothèque pour lire les fichiers docx (Word 2007).lecture de docx (Office Open XML) en PHP

Est-ce que quelqu'un a quelques recommandations, la bibliothèque devrait être en mesure d'extraire le contenu du document et le style de base comme italique, gras, exposant?

Merci pour votre aide

Répondre

2

Ou, puisque vous avez demandé une bibliothèque, vous voudrez peut-être chercher quelque chose comme Docvert. Je regardais juste autour de votre question, et c'est mon préféré jusqu'ici pour PHP. Vous entrez l'emplacement du fichier de mots, il le transforme en quelque chose de simple avec les attributs et toutes ces bonnes choses.

+0

semble prometteur mais je devrais en faire une API. – RageZ

11

fichiers docx sont en fait que des conteneurs pour le XML du document. Vous devriez être capable de décompresser le fichier docx puis d'aller dans le dossier des mots à l'intérieur, puis dans le fichier document.xml. Cela a le texte actuel. Mais les choses comme les polices et les styles sont dans d'autres fichiers xml dans le conteneur docx, donc vous aurez probablement envie de faire un peu de mal et de savoir quoi faire et comment faire correspondre (commencer en utilisant des espaces de noms, je parie). Mais oui, décompressez le fichier, puis utilisez simplexml pour le convertir en quelque chose que vous pouvez vraiment déranger.

+0

Merci, mais je me demande si quelqu'un n'est pas venu avec une bibliothèque pour le faire. Je ferais du traitement XSLT si j'en avais vraiment besoin. – RageZ

+0

Voir mon autre réponse. La seule chose que je n'aime pas à ce sujet est le manque de facile à trouver l'API – Anthony

+0

la classe TbsZip peut lire (et même éditer) le contenu des archives zip sans aucune dépendance ni aucun fichier temporaire. L'analyse XML peut être effectuée avec plusieurs autres outils. – Skrol29

4

Il y a une bibliothèque pour le faire, mais cela fonctionne avec framework Zend peut-être cela vous aidera à Il est appelé phpLiveDocx: http://www.phplivedocx.org/downloads/ La bibliothèque est distribué sous licence New Bcd

0

Convertissez un document docx en odt à l'aide de OpenOffice. Utilisez ensuite eZ Components pour effectuer l'analyse et l'importation. Ils utilisent réellement l'importation dans leur CMZ eZ Publish.

4

PHPDocX PRO comprend une classe TransformDoc qui peut lire .docx fichiers (zip) et générer XHTML (ou PDF) de celui-ci:

... 
require_once 'phpdocx_pro/classes/TransformDoc.inc'; 
$doc = new TransformDoc(); 
$doc->setStrFile($file->filepath); 
$doc->generateXHTML(); 
$html = $doc->getStrXHTML(); 
+1

Cela nécessite une licence – user478636

+0

@ user478636, Nope, son disponible sur l'édition de la communauté. –

Questions connexes