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

Développement Web en Java Discussion :

génération d'un fichier pdf


Sujet :

Développement Web en Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Points : 64
    Points
    64
    Par défaut génération d'un fichier pdf
    Bonjour à tous et à toutes,

    je souhaitrais pouvoir générer un fichier pdf à partir d'une interface web, par exemple, j'ai une interface web qui contient du text et des champs de formulaire , j'aimerais juste rajouter un bouton lorsqu'on clique dessus, il y a un fichier pdf qui se génére qui contient exactement la même chose que l'interface.
    je souhaite savoir si c'est possible de développer cette tache avec java et comment ?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour,
    Oui c'est possible, pour générer le pdf tu peut utiliser jfop par exemple.

    Ensuite il faut renvoyer le flux vers la machine client.
    (bon courage :-)).
    Yoshi

    PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.

  3. #3
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut


    L'API iText te permet de générer facilement des PDF.

    Cependant elle ne va pas "convertir" ta JSP / ton HTML en PDF directement. C'est à toi de tout recoder.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Points : 64
    Points
    64
    Par défaut génération d'un fichier pdf
    Merci

    je vais esseyer


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Points : 64
    Points
    64
    Par défaut
    connaissez vous des tutrieles qui expliquent comment on fait :wink

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre habitué Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 151
    Points
    151
    Par défaut
    c'est simple il faut pense à l'importation des class Document, DocumentException, Paragrapg, et pdf.pdfWriter
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    package com.lowagie.examples.general;
     
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.Paragraph;
    import com.lowagie.text.pdf.PdfWriter;
     
    // import com.lowagie.text.*;
    /**
     * Genere un simple 'Hello World'  en pdf
     */
     
    public class Pdf{
     
     
    	public static void main(String[] args) {
     
    		System.out.println("je vais créer un document pdf contenant un text...");
     
    		Document document = new Document();
    		try {
    			PdfWriter.getInstance(document,
    					new FileOutputStream("pdf.pdf"));
     
    			document.open();
    			// ajout paragraph au document
    			document.add(new Paragraph("les chose que je met dans mon doc pdf"));
    		} catch (DocumentException de) {
    			System.err.println(de.getMessage());
    		} catch (IOException ioe) {
    			System.err.println(ioe.getMessage());
    		}
     
     
    		document.close();
    	}
    }

    Une fois qu'un document est créé vous pouvez ajouter de l'information de méta.
    Vous pouvez également placer les en-têtes bas de page.
    Vous devez ouvrir le document avant que vous puissiez écrire le contenu.
    Vous pouvez seulement écrire le contenu (plus de méta-formation !) une fois qu'un document est ouvert.
    Quand vous changez l'en-tête bas de page à une certaine page, ce sera commencer efficace à la prochaine page.
    La fermeture d'Ater le document, chaque auditeur (aussi bien que le son OutputStream) est clôturée aussi.
    "le temps c'est le meilleur des médécins, peut être aussi le meilleur des assassins" Bernis-Francine

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Points : 64
    Points
    64
    Par défaut
    Bonjour toute l'equipe,

    j'ai besoin d'avoir le fichier jar servlet.jar pour faire la génération, quelqu'un connait où on peut le trouver?
    Merci

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Le servlet.jar est présent dans le serveur d'application.
    Modératrice Java - Struts, Servlets/JSP, ...

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Points : 64
    Points
    64
    Par défaut
    bonjour,

    j'ai réussi a généré un fichier pdf à partir d'une class java simple (class avec la méthode main), mais par contre ça ne marche pas avec une servlet, j'ai esseyé de développer une petite servlet pour généré le fichier pdf mais ça marche pas

    Merci de m'aider à resoudre ce pb

  12. #12
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    T'as fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setContentType("application/pdf");
    ?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Points : 64
    Points
    64
    Par défaut
    Bonjour, à toute l'équipe,

    oui j'ai fait ça mais le probléme c'est que le serveur n'arrive pas à localiser les fichier jar de l'API iText, dés qu'il trouve un objet de cette API il me léve l'exception suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Error 404: 
    SRVE0203E: Le servlet [OutSimplePdf] : com.gws.eatelier.pdf.OutSimplePdf a été trouvé mais il manque une autre classe requise. 
    SRVE0206E: Cette erreur implique généralement que le servlet a été tout d''abord compilé avec des classes qui ne peuvent pas être localisées par le serveur. 
    SRVE0187E: Vérifiez le chemin d''accès aux classes afin de vérifiez que toutes les classes requises par le servlet sont présentes.
    SRVE0210I: Ce problème peut être débogué en recompilant le servlet en utilisant uniquement les classes du chemin d''accès aux classes d''exécution de l''application 
    SRVE0234I: Chemin d'accès aux classes de l'application=[C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\java\lib;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\java\lib\dt.jar;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\java\lib\htmlconverter.jar;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\java\lib\tools.jar;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\profiles\default\classes;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\lib;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\lib\AMJACCProvider.jar;C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\lib\DDParser5.jar;C:\Program
    voilà la méthode appelée par doGet():
    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
    33
     
    public void makePdf(HttpServletRequest request, HttpServletResponse response, String methodGetPost) {
            try {
     
     
     
                // create simple doc and write to a ByteArrayOutputStream
                Document document = new Document();
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                PdfWriter.getInstance(document, baos);
                document.open();
                document.add(new Paragraph("coucou !! ce ci est un test pdf "));
                document.add(Chunk.NEWLINE);
                document.add(new Paragraph("The method used to generate this PDF was: " + methodGetPost));
                document.close();
     
                // setting some response headers
                response.setHeader("Expires", "0");
                response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
                response.setHeader("Pragma", "public");
                // setting the content type
                response.setContentType("application/pdf");
                // the contentlength is needed for MSIE!!!
                response.setContentLength(baos.size());
                // write ByteArrayOutputStream to the ServletOutputStream
                ServletOutputStream out = response.getOutputStream();
                baos.writeTo(out);
                out.flush();
     
            } catch (Exception e2) {
                System.out.println("Error in " + getClass().getName() + "\n" + e2);
            }
        }

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il ne trouve peut-être pas iText.jar (elle peut avoir un autre nom)

    Si tu utilises Eclipse, il faudrait créer un répertoire "lib" dans WEB-INF (si il n'existe pas déjà) et mettre le jar de iText dedans, le rajouter au classPath si besoin.
    Comme ça, lorsque tu exportes l'application vers le serveur, les jars sont exportés également.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Génération d'un fichier pdf
    Par Jiyuu dans le forum Téléchargez
    Réponses: 0
    Dernier message: 12/01/2011, 22h02
  2. génération d'un fichier PDF
    Par ottoayoub dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 10/09/2010, 05h18
  3. [FPDF] conflit entre transfert de paramètres et génération d'un fichier pdf
    Par itmak dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/06/2009, 14h24
  4. Génération automatique de fichiers PDF
    Par minitoto dans le forum MATLAB
    Réponses: 5
    Dernier message: 04/02/2007, 15h44
  5. Réponses: 9
    Dernier message: 18/09/2006, 08h24

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