112 votes

Existe-t-il une API Java permettant de créer des documents Word riches ?

Je vais travailler sur une nouvelle application dans laquelle je dois générer un document Word contenant des tableaux, des graphiques, une table des matières et du texte. Quelle est la bonne API à utiliser pour cela ? Êtes-vous sûr qu'elle prend en charge les graphiques, les tables des matières et les tableaux ? Quels sont les problèmes cachés liés à leur utilisation ?

Quelques clarifications :

  • Je ne peux pas produire un PDF, ils veulent un document Word.
  • Ils utilisent MS Word 2003 (ou 2007), pas OpenOffice.
  • L'application fonctionne sur un serveur d'applications *nix.

Ce serait bien si je pouvais commencer avec un modèle de document et simplement remplir certains espaces avec des tableaux, des graphiques, etc.

Edit : Plusieurs bonnes réponses ci-dessous, chacune avec ses propres défauts par rapport à ma situation actuelle. Difficile de choisir une "réponse finale" parmi elles. Je pense que je vais laisser la question ouverte, et espérer que de meilleures solutions seront créées.

Edit : Le projet OpenOffice UNO semble être le plus proche de ce que j'ai demandé. Bien que POI soit certainement plus grand public, il est trop immature pour ce que je veux.

27 votes

Je ne vois pas en quoi le fait de clore cette question 30 mois après sa dernière modification et plus de 3 ans après qu'elle ait été posée à l'origine va être très productif. Si je changeais le titre en "Comment créer des documents Word enrichis avec une API Java", cela réglerait-il le problème ?

1 votes

Au cas où quelqu'un aurait besoin d'un examen complet de l'api java disponible esupu.com/open-source-office-document-java-api-review

0 votes

Vous pouvez consulter docxtemplater, https://github.com/edi9999/docxtemplater/ qui est une bibliothèque que j'ai créée pour générer des docx à partir de modèles de docx

3voto

Essayez Aspose.Words pour java.

Aspose.Words for Java est une bibliothèque de classes avancée (commerciale) pour Java qui vous permet d'effectuer un grand nombre de tâches de traitement de documents directement dans vos applications Java.

Aspose.Words pour Java prend en charge les formats DOC, OOXML, RTF, HTML et OpenDocument. Avec Aspose.Words, vous pouvez générer, modifier et convertir des documents sans utiliser Microsoft Word.

2voto

Gulzar Nazim Points 35342

Vous pouvez utiliser un pont Java COM comme JACOB . Si c'est du côté client, une autre option serait d'utiliser Javascript.

2voto

tvanfosson Points 268301

J'ai utilisé Aspose.Words pour faire de la fusion de courrier en .NET. Je crois qu'il existe également une version Java.

2voto

Andrew Hancox Points 1202

Il y a un outil appelé JODConverter qui s'accroche à Open Office pour exposer ses convertisseurs de format de fichier, il y a des versions disponibles comme une application web (installée dans Tomcat) que vous postez et un outil en ligne de commande. Je lui ai envoyé du html et l'ai converti en .doc et pdf avec succès, c'est dans un projet assez important, je ne l'ai pas encore mis en ligne mais je pense que je vais l'utiliser. http://sourceforge.net/projects/jodconverter/

2voto

cam2574 Points 21

iText est très facile à utiliser.

Si vous avez besoin de fichiers doc, vous pouvez appeler abiword (processeur de texte multi-os gratuit et léger) à partir de la ligne de commande, il dispose de plusieurs options de conversion de format.

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