IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[RTFTemplate] Exception ParseErrorException


Sujet :

Documents Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Points : 22
    Points
    22
    Par défaut [RTFTemplate] Exception ParseErrorException
    Bonjour,

    J'ai un problème avec l'utilisation de RTFTemplate.

    Lorsque je génère un document pour la première fois tout se passe bien mais lorsque je la relance une deuxième fois la génération avec les même éléments, une exception est levée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    org.apache.velocity.exception.ParseErrorException: Encountered "#end\r\n" at line 8186, column 6 of 
    Was expecting one of:
        <EOF> 
        "(" ...
        <RPAREN> ...
        <ESCAPE_DIRECTIVE> ...
        <SET_DIRECTIVE> ...
        "##" ...
        "\\\\" ...
        "\\" ...
        <TEXT> ...
        "*#" ...
        "*#" ...
        <STRING_LITERAL> ...
        <IF_DIRECTIVE> ...
        <STOP_DIRECTIVE> ...
        <INTEGER_LITERAL> ...
        <FLOATING_POINT_LITERAL> ...
        <WORD> ...
        <BRACKETED_WORD> ...
        <IDENTIFIER> ...
        <DOT> ...
        "{" ...
        "}" ...
     
    	at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:311)
    	at net.sourceforge.rtf.template.velocity.VelocityTemplateEngineImpl.mergeWithTemplateEngine(VelocityTemplateEngineImpl.java:44)
    	at net.sourceforge.rtf.template.AbstractTemplateEngine.merge(AbstractTemplateEngine.java:94)
    	at net.sourceforge.rtf.template.AbstractTemplateEngine.merge(AbstractTemplateEngine.java:80)
    	at net.sourceforge.rtf.template.AbstractTemplateEngine.merge(AbstractTemplateEngine.java:65)
    	at net.sourceforge.rtf.RTFTemplate.merge(RTFTemplate.java:113)
    Est ce que quelqu'un saurait m'orienter ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Salut,

    as-tu trouvé une solution à ton problème ?

    Je suis à la recherche d'informations sur la création de document .doc à partir de modème et j'ai vu que RTF Template pouvait faire l'affaire !

    Est-ce que tu continues dans ce sens et quel est ton retour d'expérience ?

    Merci.
    Franck.

  3. #3
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour Franck

    Je n'ai pas de reponse au problème posé. Par contre pour répondre a ta question RTFTemplate gère que du RTF (qui est du texte) et pas des .doc (qui est du binaire).

    Angelo

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Bonjour et merci de ta réponse.

    Je suis au tout début du projet de publipostage et forcément, je cherche à savoir commen faire. Je pense que RTF Template est capable de m'aider à faire ce que je veux. J'ai lu le Guide d'utilisation sur le site et je pense que je vais me lancer.

    Si j'ai bien compris, RFT template prend du RTF en entrée et ressort du RTF, impossible de faire autre chose comme format de sortie, même pas du TXT brut ?

    Merci.
    Franck.

  5. #5
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour Franck,

    Si j'ai bien compris, RFT template prend du RTF en entrée et ressort du RTF, impossible de faire autre chose comme format de sortie, même pas du TXT brut ?
    Tout a fait.

    Si jamais le format ODT t'interesse il y a plus ou moins le meme projet qui a ete fait (sans la macro RTFTemplate par contre et les boucles sont un peu techniques), c'est http://jodreports.sourceforge.net/ qui prend un ODT en entréé avec une syntaxe Freemarker et génère un ODT.

    L'avantage c'est qu'apres tu peux utiliser http://www.artofsolving.com/opensource/jodconverter pour convertir ton ODT en un autre format TXT, PDF...Ce projet s'appuie sur les API natives de OpenOffice. Ca implique que OpenOffice doit etre lance en mode serveur d'apres mes souvenirs et l'API est pas tres stable quand je l'avais utilisé (le serveur devait etre redémarré de temps en temps).

    L'avantage de RTFTemplate par rapport a jodreports c'est a qu'il fournit une macro http://rtftemplate.sourceforge.net/f...el/msword.html qui aide la construction du modèle RTF qui permet de double cliquer sur les champs disponibles du modele de donnée et ca les insère. Pour uen secrétaire qui n'a pass a connaitre les problèmes techniques derriere (syntaxe velocity), c'est l'idéal.

    Par contre il ne génère que du RTF et il faut bien se mettre en tête que RTFTemplate n'est pas un générateur de rapport ou on peut faire des group by, es tri (c'est le modèle Java qui doit préparer les données). Mettre en rouge certaine cellule, ca n'est pas prévu non plus. Le but de RTFtemplate est de pouvoir créer simplement des modèle RTF (pour le publipostage par exemple) et pas de générer de beaux rapports comme ce que font Bird, JasperReport...qui sont très puissant pour la génération de rapport mais compliqué pour quelqu'un qui n'a pas l'habitude de ces designers de rapport.

    Je n'ai plus le temps de maintenir RTFTemplate car je suis devenu entre temps commiteur Eclipse E4 avec le moteur CSS que j'avais créé, ce qui me prends tout mon temps.

    Bon courage

    Angelo

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Bonjour,
    merci pour les explications claires, c'est super sympa de prendre du temps pour me répondre.


    Dans l'étape Désigner modèle RTF, on parle de contexte POJO. J'ai bien compris l'idée d'avoir une classe Java qui contient tous les getter/setter dispo pour que la fusion fonctionne.

    Comment créer dynamiquement cette classe Java ? En admettant que je possède tout un tas d'écrans dont la liste n'est pas connue avec une grille associée : Dans ma grille j'ai plusieurs champs (colonnes) avec plusieurs valeurs (lignes) : comment à partir de cette grille, je peux créer dynamiquement mon contexte POJO.

    D'avance merci.
    Franck.

  7. #7
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Franck,

    A ta question je sens que tu souhaiterais générer des colonnes dynamiques dans ton modèle RTF.Ceci n'est pas possible. Le modèle RTF que tu construits doit afficher un nombre de colonne statique. Si ceci te convient cree toi une classe Row avec Row#getCol1(), Row#getCol2()....

    Angelo

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Ce n'est pas forcément le modèle RTF que je souhaiterais dynamique, mais plus la classe JAVA.

    Le modèle RTF, je pense que je vais l'imposer. Je ferais des exemples de modèles bien définis.
    Si j'ai bien compris, le modèle POJO doit être en phase avec les variables utilisées dans le modèle RTF.
    Si c'est cela, ça signifie donc, que je dois avoir créer une classe JAVA en amont qui contient les getters/setters du modèle RTF.
    C'est bien ça ?

    Ma question, c'était plus dans le sens où le modèle est imposé par mes soins. Je connais donc à l'avance mes variables et donc, je peux même imaginer faire ma classe à l'avance. L'utilisateur choisit dans la grille les colonnes/lignes qu'il souhaite fusionner. Je fais passer les valeurs au contexte, et en fait, si la colonne n'est pas trouvé dans la classe Java, ça ne marche pas, mas ça ne plantera pas ??

    Merci.

  9. #9
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Le modèle RTF, je pense que je vais l'imposer. Je ferais des exemples de modèles bien définis.
    Si j'ai bien compris, le modèle POJO doit être en phase avec les variables utilisées dans le modèle RTF.
    Si c'est cela, ça signifie donc, que je dois avoir créer une classe JAVA en amont qui contient les getters/setters du modèle RTF.
    C'est bien ça ?
    Oui c'est ca.

    Ma question, c'était plus dans le sens où le modèle est imposé par mes soins. Je connais donc à l'avance mes variables et donc, je peux même imaginer faire ma classe à l'avance.
    C'est ce qu'il faut faire.

    L'utilisateur choisit dans la grille les colonnes/lignes qu'il souhaite fusionner. Je fais passer les valeurs au contexte, et en fait, si la colonne n'est pas trouvé dans la classe Java, ça ne marche pas, mas ça ne plantera pas ??

    J'ai du mal a comprendre, mais il faut que la classe Java contienne toutes les colonnes possibles. C'est pour cela que je proposais Row#getCol1(), Row#getCol2(). Mais si on peut se passer de ca je pense que ca serait mieux car pour la personne qui va creer le modele avoir des noms row.getCol1 n'est pas tres comprehensif par rapport a project.name
    Merci.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    OK, je vois donc le principe.

    Je vais essayer de partir dans ce sens. Je pense que je reviendrais peut être à la charge avec d'autres questions au fur et à mesure, mais dans tous les cas, je posterais pour donner des nouvelles.

    Merci.
    à très bientôt.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 116
    Points : 67
    Points
    67
    Par défaut
    Est-ce que les fichiers de type .rft peuvent recevoir des macros et du coup être lancés ?

    Je me pose cette question, car dans le cadre de mon projet, je sais que l'utilisateur final écrira des macros sur ces modèles, et donc, avant d'aller plus loin, si les fichers .rft ne le gère pas, ce n'est pas la peine que j'aille plus loin.

    J'ai bien réussi à faire une toute petite macro très simple sur mon modèle .rtf, mais bon, je voulais avoir votre avis ?

    Merci.

  12. #12
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    C'est a verifier mais je ne croies pas qu'un modèle RTF puisse enregistrer sa propre macro. C'est le format doc qui est en binaire qui est capable de les enregistrer.

    A verifier.

    Angelo

Discussions similaires

  1. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  2. Exception & Try..catch
    Par PurL dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/12/2002, 15h35
  3. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo