Apache POI ou docx4j pour traiter les documents docx [fermé]

selon vous, Qu'est-ce qui est le mieux à utiliser pour lire le document docx en tant qu'objets java et pourquoi ?

en d'autres termes. quelle bibliothèque supporte la plupart des mots-clés?

15
demandé sur becks 2013-02-22 02:57:28

4 réponses

divulgation: je dirige le projet docx4j

bien que docx4j puisse aussi manipuler pptx et xlsx, il est surtout utilisé pour la manipulation de docx. A titre d'illustration, comme au moment de l'écriture, il y a près de 1000 sujets dans le docx4j forum. Le forum pptx n'a que 10% du volume.

peu importe ce que vous voulez faire avec le document docx, docx4j devrait pouvoir vous aider. Il y a un aperçu d'une page générique workflow.

pour de nombreuses exigences communes, docx4j fournit une API de niveau supérieur. Elles comprennent:

  • Créer/ouvrir/enregistrer docx (bien sûr)

  • production de rapports/documents, en utilisant une variété d'approches: (I) Variable de substitution, (ii) la liaison de données XML (particulièrement forte), et (iii) Mailmerge

  • Exporter en HTML, XHTML

  • Exporter en PDF (avec police appui)

pour tout le reste, vous pouvez manipuler la représentation JAXB du docx au contenu de votre cœur. JAXB est un standard de communauté Java, inclus dans Java 6, et avec une forte implémentation alternative dans MOXy D'EclipseLink. (POI utilise XML Beans au lieu de JAXB)

il y a un application web pour vous aider à explorer un docx, et générer du code Java pour créer des objets Java correspondants.

bien sûr, si il existe des tâche que vous avez à l'esprit, il se peut que docx4j ou ci a une force particulière.

docx4j et POI sont tous deux titulaires d'une licence ASL v2.

docx4j est maintenu activement; son code source est GitHub.

en outre, un support commercial est disponible pour docx4j si vous le souhaitez, comme le sont plusieurs extensions commerciales par exemple MergeDocx.

docx4j s'appuie sur POI comme bibliothèque pour sa mise en œuvre de la OLE 2 Format de document composé, que nous vous remercions.

20
répondu JasonPlutext 2013-05-16 13:13:19

je pense que Apache POI ' s se concentre principalement sur le traitement des tableurs bien que j'ai des fonctionnalités pour lire des documents word et il utilise des haricots xml pour le faire. Docx4j traite principalement des documents docx en utilisant jaxb. Habituellement jaxb permet la conversion d'objet xml en java donc je pense que docx4j serait préférable pour votre cas.

2
répondu Mohamed Makthum 2013-02-21 23:58:02

J'ai essayé Apache POI, mais le problème est que lors de l'impression de quelque chose à partir du fichier docx (Ex: pour imprimer tous les éléments "Heading1" à partir de docx),il est imprimé beaucoup de mauvaises données et espaces. Docx4j évitera ces mauvaises données, je l'ai essayé.

2
répondu Venkatesh Dhanasekaran 2015-03-15 08:54:12

si vous avez affaire à un document docx, docx4j est plus pratique qu'Apache POI. Vous pouvez utiliser les liens suivants pour apprendre les bases de docx4j. Il y a aussi un forum sympa de docx4j.

1.http://blog.iprofs.nl/2012/09/06/creating-word-documents-with-docx4j/ 2.http://www.smartjava.org/content/create-complex-word-docx-documents-programatically-docx4j?

2
répondu lycaenidae 2016-02-04 12:22:57