Document Word création de l'API en Java
Je voudrais créer un document word à l'aide d'un modèle, de remplacer certaines variables (champs) et l'enregistrer dans un nouveau document word.
Je pensais à l'aide d'Apache POI, http://poi.apache.org/ est-il le meilleur pour cette fin?
pouvez-vous partager votre impression?
Vérifiez ici: stackoverflow.com/questions/203174/...
OriginalL'auteur Eran Medan | 2010-01-02
Vous devez vous connecter pour publier un commentaire.
J'ai travaillé avec POI avant et il est certainement en mesure de générer des documents Word. Mais le diable est dans les détails.
Mot a des milliers de fonctionnalités: Vous pouvez mettre des listes numérotées en commençant au n ° 13 avec des retraits négatifs en deux rejoint les cellules d'un tableau dans un autre tableau qui est elle-même partie d'une liste à puces... vous voyez l'idée. Lorsque le PI de la documentation dit qu'ils sont un travail en cours, qui témoigne de ce que sera probablement un état éternel de d'essayer de se rattraper à la (aux us, les sans-papiers) spécification de la Parole.
Documents avec un relativement "normale" ensemble de caractéristiques utilisées sont bien pris en charge par PI, dont les interfaces et les méthodes sont raisonnables et cohérents, mais parfois besoin d'un peu de travail. Mais comme dit Pascal, les documents avec une pas trop exorbitant ensemble de fonctionnalités sont également pris en charge par la RTF.
Je n'ai presque pas d'expérience "faire" ou " RTF " mais c'est probablement un peu plus simple que de travailler avec PI.
Si vous travaillez dans un environnement ou pour un client qui insiste pour que vos documents soient
.DOC
plutôt que.RTF
, alors PI est assez bien votre seul choix, à moins que vous pouvez introduire une étape où vous utilisez un peu de bureautique convertir RTF en DOC.Mise à jour: j'ai eu un couple plus d'idées dans l'intervalle.
À l'aide de POI ou la création de documents RTF est quelque chose que vous pourriez faire sur pratiquement n'importe quelle plate-forme. À mon travail, tous les serveurs faisant de traitement comme cela arriver à être en cours d'exécution de Linux, par exemple.
Toutefois, dans le cas probable que vos programmes s'exécutent sous Windows, il existe une autre alternative: Jacob http://www.land-of-kain.de/docs/jacob/
Jacob est un
COM
interface Java; essentiellement, elle permet de "contrôle à distance" de Windows programmes tels que Word et Excel. Le document que j'ai lié ci-dessus n'est pas à Jacob son propre site, mais à une seule page avec un "cookie cutter" recettes pour l'utilisation de Jacob. Le projet lui-même est sur SourceForge: http://sourceforge.net/projects/jacob-project/ Mais les gens de réclamation, et à juste titre, que la documentation est un peu défaut.Jacob a l'avantage sur toutes les autres solutions que vous avez à traiter avec la "vraie" Parole et, par conséquent, tous capacités de Word sont disponibles pour vous. Ce serait une alternative si il y a des aspects de détail de votre document que tout ne peut pas être traitée avec des POI ou via le format RTF.
OriginalL'auteur Carl Smotricz
C'est évidemment beaucoup trop tard, Mais depuis 2013, il existe une bien meilleure, solution plus flexible pour un document word création.
http://www.docx4java.org/trac/docx4j
J'ai eu beaucoup plus de chance avec docx4j que j'ai jamais fait avec PI.
OriginalL'auteur Yonkee
Si vous utilisez un modèle, et ne veulent pas créer le document word à partir de zéro, pour ce que je sais, PI est une assez bonne solution. Vous ouvrez le modèle et sélectionnez les zones que vous souhaitez remplacer.
Ils disent PI est toujours en développement, mais je l'ai utilisé dans la production de l'environnement et il fonctionne assez bien pour le moment.
Le problème Que j'ai, c'est: mon Modèle word contient un en-tête qui doit être modifié. Et autant Que je sache, le PVE ne me permet pas de modifier L'en-tête.
Rocher , vous n'avez pas face à certains problèmes avec cette méthode , comme cela ne fonctionne pas tout le temps
veuillez vous référer à ma question ici stackoverflow.com/users/1619243/fatidev?tab=questions
OriginalL'auteur Valentin Rocher
Je ne suis pas sûr de l'état exact de la Parole des documents de soutien en PVE, mais, selon le PVE de site web, le travail est toujours en cours (ne peux pas dire ce que cela signifie exactement). Ainsi, à ce moment, je ne voudrais pas utiliser POI mais plutôt essayer de générer un document RTF. Pour cela, vous pouvez :
J'irais pour iText.
OriginalL'auteur Pascal Thivent
Je sais que cette question est un peu vieux, mais je pense que beaucoup de gens trouve encore avec les moteurs de recherche, donc je poste une autre possibilité de faire ce que vous voulez ici:
Si le seul et unique but est d'avoir un Modèle Word et de le remplacer certaines valeurs de cela, vous pourriez penser à l'enregistrement d'un Modèle Word en tant que xml unique (pas docx), puis de la traiter avec Java simple et sans Cadre. Si vous voulez faire plus (par exemple, créer des listes ou des tableaux), vous pourriez également envisager de comprendre le format xml et écrire vos propres aides avant le chargement d'un Framework comme PVE.
Voici un exemple sur la façon de le faire:
http://dev-notes.com/code.php?q=10
C'est une version rapide, si vous voulez une belle version, vous pouvez essayer d'utiliser un processeur XML.
PS: les utilisateurs peuvent remarquer que l'extension du fichier n'est pas doc mais xml et ils peuvent vous blâmer pour cela, mais c'est ok... juste le renommer en doc, word va reconnaître le format et tout le monde est heureux à nouveau 😉
OriginalL'auteur UniversE
Vous devriez regarder dans le Aspose.Mots composants. Ils ont récemment commencé à fournir une version Java de la composante.
Voir le lien suivant: Aspose.Mot pour Java
Cette prise en charge de Word automation, de la création et des fonctionnalités avancées telles que la fusion de courrier sans la nécessité d'une instance de Microsoft Word sur la machine. Le réel avantage est que vous êtes capable de travailler dans le contexte d'un document word et de ne pas avoir à faire de compromis en créant des cellules Rtf, etc.
La version de Java n'est actuellement pas aussi complet que l' .Net version, mais la principale fonctionnalité de base est là et ils sont en train de pousser très dur d'avoir un équivalent de la version bientôt.
Aussi, si vous achetez la version de Java que vous obtenez un ans gratuit les mises à niveau et de soutien que les nouvelles versions sont créées.
OriginalL'auteur Brian Scott
Si vous travaillez avec des documents docx, docx4j est une option. Comme POI, ses open source.
OriginalL'auteur JasonPlutext
J'ai créé et utiliser ceci: http://code.google.com/p/java2word
OriginalL'auteur Leonardo