Meilleure Façon de traiter un Document Word
- Je recevoir des documents word avec le formatage correspondant aux données qui est en eux. Par exemple, tous les en-têtes ont exactement la même mise en forme (Times New Roman, Police 14 Gras).
Quelle est la meilleure façon de traiter ces documents MS Word (.doc ou .docx) en documents xml? La langue n'est pas un problème (je vais utiliser Lisp/Boost.L'esprit si je dois le faire!).
Pourriez-vous élaborer sur la façon dont les éléments xml sera généré pour les documents word? Si c'est purement à base de texte, je pourrais regarder les convertir en texte brut premier.
Voir bytes.com/topic/python/answers/24103-parsing-ms-word-document
Voir stackoverflow.com/questions/125222/...
Lire aussi cet article très perspicace par Joel: Pourquoi les MS Office formats de fichier si compliqué? (Et quelques solutions de contournement)
Voir bytes.com/topic/python/answers/24103-parsing-ms-word-document
Voir stackoverflow.com/questions/125222/...
Lire aussi cet article très perspicace par Joel: Pourquoi les MS Office formats de fichier si compliqué? (Et quelques solutions de contournement)
OriginalL'auteur Mikhail | 2010-11-24
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la python-docx bibliothèque.
OriginalL'auteur Etienne
Je pense donc que vous êtes en train de dire que la structure du document est codé dans la mise en forme, et vous voulez produire des fichiers XML qui capture cette structure, tout en gardant le contenu en texte brut?
Si c'est le cas, vous devez analyser les documents, et de construire une structure de données qui peuvent être traitées, puis jetés comme du XML.
Pour l'analyse, il ya quelques options. Microsoft ont publié le cahier des charges pour leur binaires .format doc, la lecture de ce qui sera essentiel pour écrire un analyseur syntaxique pour elle. Dans le cas d' .docx vous êtes un peu plus de chance, comme c'est déjà au format XML, vous pouvez utiliser l'analyse XML bibliothèque pour lire dans le fichier, puis recherche par le biais de l'arbre résultant pour les données qui vous intéressent. Parseurs XML sont disponibles pour à peu près n'importe quelle langue, un facile à utiliser l'un qui vient à l'esprit est MiniDom pour Python.
Pour la réalisation de vos XML de sortie, encore une fois un objet de la représentation XML de la bibliothèque semble être la voie à suivre, MiniDom par exemple, n'a que trop.
Si vous ne voulez pas avoir affaire avec la rédaction de votre propre .doc analyseur, vous pouvez exécuter les documents par l'intermédiaire d'un convertisseur de produit sont un format plus accessible d'abord - comme l'utilisation de Mot lui-même de convertir les .les fichiers doc .docx, ou d'un outil qui produit RDFs .docs, ou vous pouvez utiliser un mot de l'analyseur comme dans OpenOffice.
BTW, en essayant d'écrire une .doc analyseur de MS specs serait suicidaire au mieux - il y avait une raison pourquoi la première .docx spécifications avait 6000 pages - soit utiliser un module qui le fait déjà, ou de convertir les .doc à autre chose avec OOo.
OriginalL'auteur David Claridge
Utilisé un très inefficace conditionnelle de recherche en VBA pour littéralement copier le document dans un second document. Le deuxième document a été enregistré avec un .extension xml. Fait le travail, mais son laid.
OriginalL'auteur Mikhail
Vous pouvez également essayer de Java Apache POI - HWPF. Il prend en charge le texte l'extraction. Vous devrez ensuite créer votre propre document XML, De lanceur de sorts XML ou Xstream peut vous aider sur cette question.
OriginalL'auteur n002213f
Cela dépend vraiment exactement ce que vous essayez de faire.
L'approche la plus simple serait d'enregistrer le document en tant que Plat OPC XML (dans Word, "Enregistrer sous.." XML), et ensuite appliquer une transformation XSLT.
Cette approche est la plus simple, puisqu'il vous donne la totalité de docx en un seul fichier XML, de sorte que vous n'avez pas à le décompresser etc.
Si vos besoins sont plus complexes, par exemple, l'analyse de la mise en forme ou de styles, ou de faire quelque chose avec des liens hypertexte, puis un modèle d'objet comme docx4j (Java) ou Open XML SDK (C#) - et sans doute, il existe d'autres - peut aider.
OriginalL'auteur JasonPlutext