Est-il une API Java qui peut créer de riches documents Word?
J'ai une nouvelle application que je vais travailler sur l'endroit où je dois générer un document Word qui contient des tableaux, des graphiques, une table des matières et le texte. Ce qui est une bonne API à utiliser pour cela? Comment êtes-vous sûr qu'il prend en charge des graphiques, des tables des matières, et des tables? Quels sont cachés gotcha dans leur utilisation?
Quelques précisions:
- Je ne peux pas sortie un fichier PDF, ils veulent un doc Word.
- Ils sont à l'aide de MS Word 2003 (ou 2007), pas OpenOffice
- Application est en cours d'exécution sur *nix application-serveur
Ça serait bien si je pouvais commencer avec un modèle de doc et il vous suffit de remplir un espace avec des tables, des graphiques, etc.
Edit: Plusieurs bonnes réponses ci-dessous, chacune avec leurs propres défauts en ce qui concerne ma situation actuelle. Difficile de choisir une "réponse définitive" de leur part. Pense que je vais le laisser ouvert, et j'espère pour de meilleures solutions pour être créé.
Edit: OpenOffice UNO projet ne semble pas être le plus proche de ce que j'ai demandé. Alors que le PI est certainement plus grand public, il est trop immature pour ce que je veux.
- Pas sûr de la façon de clôture à cette question, 30 mois après la dernière mise à jour, et plus de 3 ans après il a été initialement demandé va être très productif. Si j'ai changé le titre de "Comment puis-je créer de riches documents Word avec une API Java?" que résoudre ce problème?
- dans le cas où certaines on besoin d'un examen complet de l'api java esupu.com/open-source-office-document-java-api-review
- Vous pourriez avoir un coup d'oeil à docxtemplater, https://github.com/edi9999/docxtemplater/ qui est une bibliothèque que j'ai créé pour générer docx de docx modèles
- La question doit être rouverte. La question a été reformulé de manière à adapter les règles, donc, je voudrais appeler la personne qui a le pouvoir de revenir sur cette question. Avant que la question était: est-Ce qu'une bonne API Java pour la création de documents Word? Maintenant, la question est: Est-il une API Java qui peut créer de riches documents Word? La question est maintenant clairement en exergue à ce que la demande de la personne souhaite: création de documents Word avec des graphiques, des tables des matières et des tables. La question ne demande plus un "bon" API Java. Bon est différent pour tout le monde.
Vous devez vous connecter pour publier un commentaire.
En 2007, mon projet utilisé avec succès OpenOffice.org's Réseau Universel Des Objets (UNO) interface de programmation pour générer MS-Word documents compatibles (*.doc), ainsi que des correspondants de documents PDF à partir d'une application Web Java (un Struts/JSP cadre).
OpenOffice UNO vous permet également de construire MS-Office-compatible graphiques, feuilles de calcul, présentations, etc. Nous avons été en mesure de créer dynamiquement sophistiqué documents Word, y compris les graphiques et les tableaux.
Nous avons simplifié le processus en utilisant le modèle MS-Word documents avec signet insère dans lequel le logiciel contenu inséré, cependant, vous pouvez créer des documents complètement à partir de zéro. Le but était d'avoir le logiciel de générer un rapport de documents qui pourraient être partagées et modifiées par les utilisateurs finaux avant de les convertir au format PDF pour la finale de la livraison et de l'archivage.
Vous pouvez éventuellement produire des documents dans OpenOffice formats si vous souhaitez que les utilisateurs d'utiliser OpenOffice à la place de MS-Office. Dans notre cas, les utilisateurs souhaitent utiliser MS-Office-outils.
UNO est inclus dans la suite bureautique OpenOffice. Nous avons simplement liée à notre application Java pour UNO bibliothèques dans la suite. Un OpenOffice Kit De Développement Logiciel (SDK) est disponible contenant des exemples d'applications et de l'ONU Guide du Développeur.
Je n'ai pas cherché à savoir si la dernière OpenOffice UNO peut générer MS-Office 2007 Open XML format de document.
Les choses importantes à propos de OpenOffice UNO sont:
Voici quelques sites web utiles:
Je pense que Apache POI pouvez faire le travail. Un problème possible en fonction de l'utilisation de votre visant à peut être causé par le fait que HWPF est encore au début de leur développement.
Vous pouvez utiliser ceci:
http://code.google.com/p/java2word
J'ai mis en place cette API appelée Java2Word. avec quelques lignes de code, vous pouvez en générer un Document Microsoft Word.
Par exemple.:
Il y a quelques exemples de comment l'utiliser. Fondamentalement, vous aurez besoin d'un fichier jar.
Laissez-moi savoir si vous avez besoin de plus d'informations comment le configurer.
*J'ai écrit cela parce que nous avons eu une vraie nécessité dans un projet. De plus dans mon blog:
http ://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html
*
cheers
Leonardo
Modifier : Projet en lien déménagé à https://github.com/leonardoanalista/java2word
Essayer Aspose.Mots pour Java, il fonctionne sur n'importe quel OS où Java est installé.
Il affiche le document en DOC, DOCX ou RTF si vous avez besoin d'un MS Word format de sortie. Tous sont pris en charge aussi bien.
L'utilisation de cette API, vous pouvez créer un document à partir de zéro, littéralement de nœuds et de définir leurs propriétés de mise en forme. Vous pouvez également utiliser un DocumentBuilder qui fournit des méthodes de niveau plus élevé comme la création d'une ligne de tableau, insérer un champ, etc. Ou vous pouvez copier/participer/déplacer des portions entre les pré document créé, dites que vous voulez assembler un contrat, il suffit de le saisir et de copier des morceaux à partir de plusieurs documents et Aspose.Les mots de la fusion des styles, une liste de formatage etc correctement dans le document qui en résulte.
Vous serez en mesure d'insérer une table des matières champ à l'aide de Aspose.Des mots, mais à compter d'aujourd'hui, le champ table des matières nécessitera une mise à jour du champ lorsque le document est ouvert dans Microsoft Word. Cependant, nous allons libérer support complet pour la table des matières les champs au début de 2010. E. g. il va construire complet table des matières comme MS Word t-il.
Je suis sur le Aspose.Les mots de l'équipe.
Il a été mentionné que brièvement une fois, j'aimerais donc appeler le docx4j de la bibliothèque, que j'ai eu plus de succès avec docx4j qu'autre chose. Apache POI de soutien pour les documents Word n'est pas très bon. Aussi, à la différence de Aspose.Mots, docx4j est une bibliothèque open source.
Le seul inconvénient est avec docx4j vous devez créer Office Open XML (docx) format des documents plutôt que de OLE2 base (doc) des documents au format. C'est le format par défaut de Word 2007, mais Word 2003 et les versions antérieures les utilisateurs devront installer un pack de compatibilité.
Essayer Aspose.Mots pour java.
Vous pouvez utiliser un Java COM pont comme JACOB. Si c'est du côté client, une autre option serait d'utiliser le Javascript.
J'ai utilisé Aspose.Mots faire de fusion et publipostage dans .NET. Je crois qu'ils ont aussi une version de Java.
Il y a un outil appelé JODConverter qui s'accroche dans open office pour exposer le format de fichier convertisseurs, il y a des versions disponibles comme une webapp (se trouve dans tomcat) que vous mettez de et un outil de ligne de commande. J'ai été à la cuisson de html et de la conversion de .doc et pdf avec succès, c'est un assez gros projet, qui n'est pas allé vivre encore, mais je pense que je vais l'utiliser.
http://sourceforge.net/projects/jodconverter/
iText est vraiment facile à utiliser.
Si vous requiere fichiers doc, vous pouvez appeler abiword (gratuit lightweigh multi-os texte procesor) à partir de la ligne de commande, il y a plusieurs format de conversion de convertir des options.
docx4j ou pve, qui sont tous deux ASL v2
@wondersofcomputing: iText est effectivement libre et open source
Projet de loi, le POI et iText API sont très similaires d'un point de vue de la programmation. J'ai travaillé à la fois dans le passé et il l'a trouvé à la fois facile à utiliser et bien documenté.
Avec iText vous gagnez l'avantage d'être en mesure de basculer entre les formats (RTF et PDF) avec modification mineure au code. Si je me souviens bien le contenu est présenté en utilisant les mêmes appels, puis défini comme PDF ou RTF à l'aide de quelques lignes de code.
Toutefois, je crois que la mise en forme RTF est limitée par rapport à la DOC. Je ne sais pas si vous serez en mesure de mettre en œuvre les fonctionnalités avancées que vous cherchez (des tableaux, des images en ligne) sans une quantité décente de tracas, si à tous.
Compte tenu de ce que vous avez dit que sur HWPF de ne pas avoir suffisamment de fonctionnalités pour répondre à vos besoins (je ne l'ai traitée avec Excel côté de POI) votre meilleur pari peut être à convaincre les pouvoirs que le format PDF est le meilleur de la technologie pour le travail.
J'ai développé pure à base de XML fichiers word dans le passé. J'ai utilisé .NET, mais la langue ne devrait pas d'importance puisque c'est vraiment XML. Il n'a pas été la chose la plus facile à faire (il avait un projet qui a exigé il y a quelques années.) Ces ne travaillent seulement dans Word 2007 ou au - dessus, mais tous vous avez besoin de Microsoft, qui est le blanc du papier qui décrivent ce que chaque étiquette est. Vous pouvez accomplir tout ce que vous voulez avec les balises de la même façon que si vous utilisiez Word (bien sûr, un peu plus douloureux au début.)
Après un peu plus de recherche, je suis tombé sur iText, PDF et RTF-création de fichiers de l'API. Je pense que je peux utiliser le format RTF génération pour créer un Doc lisible fichier qui peut ensuite être modifié à l'aide de Doc et ré-enregistré.
Quelqu'un a une expérience avec iText, utilisé de cette façon?
Encore une autre possibilité, puisque c'est une application web.
J'ai été en mesure de rendre une page HTML dont le type MIME est réglé sur "application/msword", qui a causé le navigateur pour frayer Mot qui a importé le html tout simplement beau, permettant des modifications et de l'économie, comme si j'avais sortie un réel Word doc.
Tables de bien fonctionner, mais les images que je n'avais pas eu l'occasion de travailler encore. Il peut être aussi facile que de simplement une balise dans le code HTML, ou j'ai peut-être pour diffuser une partie de la réponse contenant les données d'image binaires, ou une autre méthode, je n'ai pas trouver encore. 🙂
Même si c'est beaucoup plus tard que la demande, il peut aider les autres. Docmosis fournit une API Java pour la création de documents dans le doc,pdf,odt format à l'aide de documents que les modèles. Il utilise OpenOffice en tant que moteur pour effectuer les conversions de format. Manipulation de documents et de la population est effectué par Docmosis lui-même.