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

AWT/Swing Java Discussion :

JPanel en PDF


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut JPanel en PDF
    Bonjour
    J'utilise la bibliothèque iText pour exporter mes JPanel en pdf, voici le code :
    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
    void ExportPDF (){
    		Document document = new Document();
    		try {
    		    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));
    		    document.open();
    		    PdfContentByte contentByte = writer.getDirectContent();
    		    PdfTemplate template = contentByte.createTemplate(500, 500);
    		    Graphics2D g2 = template.createGraphics(500, 500);
    		    pp.print(g2);
    		    g2.dispose();
    		    contentByte.addTemplate(template, 30, 300);
    		} catch (Exception e) {
    		    e.printStackTrace();
    		}
    		finally{
    		    if(document.isOpen()){
    		        document.close();}
    		    }
     
    	}
    Mon soucis c'est que mon JPanel n'est pas totalement exporté
    Voici mon JPanel (pp)
    et voila ce que j'obtiens comme .pdf
    J'ai essayé de modifier les paramétrés des méthodes createTemplate et createGraphics mais y a pas grand chose comme résultat...
    Avez vous une idée ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    avez vous bien défini la taille de pp à 500x500?

  3. #3
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    non
    pp a comme taille la taille de la fenêtre ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     pp=new JPanel();
    			pp.setSize(this.getSize());
    			pp=(JPanel) this.getContentPane();

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si vous voulez le dessiner dans une zone 500x500, il faut le mettre à cette taille, sinon soit il débordera, soit il aura des marges

  5. #5
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Salut
    tout d'abord merci pour votre rapidité...
    Bon, j'ai passé comme paramètres l'hauteur et la largeur de mon JPanel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     PdfTemplate template = contentByte.createTemplate(pp.getHeight(), pp.getWidth());//500, 1184
    		    Graphics2D g2 = template.createGraphics( pp.getWidth(),pp.getHeight());
    voici ce que j'obtienne : (
    T'as une idée ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Salut,
    es-tu sûr de cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contentByte.addTemplate(template, 30, 300);
    Peut-être un ..., 0, 0); ??

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

Discussions similaires

  1. Insérer un PDF dans un JPanel
    Par snay13 dans le forum Débuter
    Réponses: 10
    Dernier message: 18/07/2010, 23h47
  2. [iText] Insérer un JPanel dans un pdf
    Par Tengen dans le forum Documents
    Réponses: 2
    Dernier message: 16/04/2010, 15h53
  3. Affichage d'un doc PDF sur une JFrame ou JPanel
    Par titi42 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 07/09/2009, 17h42
  4. [JPanel] Créer un PDF à partir d'un JPanel
    Par patou21 dans le forum 2D
    Réponses: 1
    Dernier message: 28/01/2008, 13h35
  5. impression PDF d'un Jpanel
    Par mm2405 dans le forum Documents
    Réponses: 3
    Dernier message: 20/03/2007, 18h13

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