Convertie une interface en une page pdf

Signaler
Messages postés
18
Date d'inscription
vendredi 20 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
-
Messages postés
18
Date d'inscription
vendredi 20 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
-
Bonjour s'il vous plait comment convertie une interface graphique en une page pdf par le bibliothèque itext et merci d’avance .

3 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Bonjour,

Tu n'as pas une méthode qui te permette de le faire directement. Il faut que tu utilises les méthodes de l'API pour décrire ce que tu veux enregistrer dans le fichier pdf.

http://www-igm.univ-mlv.fr/~dr/XPOSE2004/sguinchard/iText/exemples.html

Sinon, tu peux imprimer l'image qui correspond à ton interface dans un document PDF avec PDFCreator par exemple mais je ne sais pas si cela correspond à tes besoins.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Tu t'en sort ?
Messages postés
18
Date d'inscription
vendredi 20 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012

oui j'ai presque trouver la solution voila le code
cette 1ére classe permet de créer la carte

package carte;

import java.awt.Color;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.imageio.*;

public class CartView extends JComponent {
int largeur, hauteur;
Personne p;
DrawViewCells draw = new DrawViewCells(); // la classe DrawViewCells permet de dessiner un rectangle contient des chaines de caractère
File file, file1;
BufferedImage image, image1;

CartView(Personne P, int largeur, int hauteur) throws Exception {
this.hauteur = hauteur;
this.largeur = largeur;
p = P;
file = new File("D:/150.jpg");
image = javax.imageio.ImageIO.read(file);
file1 = new File("D:/logo.jpg");
image1 = javax.imageio.ImageIO.read(file1);

setSize(largeur, hauteur);
}

public void paint(Graphics g) {
String[] Corps = { "nom " + p.prenom, "prénom " + p.nom,
"date de naissance " + p.date };
g.setColor(Color.white);
g.fillRect(0, 0, getWidth(), getHeight());
draw.setAlignement(1);
draw.setBorder(true);
draw.draw(g, largeur / 2, hauteur / 2, largeur / 2 - largeur / 20,
hauteur / 2 - hauteur / 20, Color.WHITE, Corps, Color.black, 0);
draw.draw(g, largeur / 3, hauteur / 20, largeur / 2, hauteur / 8,
Color.WHITE, "Carte d'étudiant", Color.black, 0);
draw.draw(g, largeur / 3, hauteur / 5, largeur / 2, hauteur / 8,
Color.WHITE, "année scolaire", Color.black, 0);
// draw.draw(g,90,hauteur/6, largeur/2,
// hauteur/8,Color.WHITE,num,Color.black,0);
g.drawLine(largeur / 30, hauteur / 3, largeur - largeur / 20,
hauteur / 3);
g.drawRect(0, 0, largeur, hauteur);
g.drawRect(largeur / 30, hauteur / 30, largeur - largeur / 15, hauteur
- hauteur / 15);

g.drawImage(image, largeur / 15, hauteur / 2 + hauteur / 15 - hauteur
/ 10, largeur / 5, hauteur / 2, null);
g.drawRect(largeur / 15, hauteur / 2 - hauteur / 25, largeur / 5,
hauteur / 2);
g.drawImage(image1, largeur / 25, hauteur / 25, largeur / 4,
hauteur / 3, null);
g.drawRect(largeur / 25, hauteur / 25, largeur / 4, hauteur / 3);

}

}



cette 2éme classe permet de mettre cette classe dans une page pdf




package carte;

import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import com.itextpdf.text.pdf.DefaultFontMapper;
import com.itextpdf.text.pdf.PdfTemplate;
import java.awt.Graphics;
import java.io.File;

public class PdfCreator {

static public void createPdf(Personne p, String filename) {
Rectangle a4 = PageSize.A4;
Rectangle a4Landscape = a4.rotate();
Document document = new Document(a4Landscape);
try {
PdfWriter writer;
writer = PdfWriter.getInstance(document, new FileOutputStream(
filename));
document.open();
PdfContentByte cb = writer.getDirectContent();
Graphics g = cb.createGraphics((int) PageSize.A4.getHeight(),
(int) PageSize.A4.getWidth());
CartView vv = new CartView(p, (int) PageSize.A4.getHeight(),
(int) PageSize.A4.getWidth());
vv.paint(g);
g.dispose();
} catch (Exception e) {
System.err.println(e.getMessage());
}
document.close();
}

public static void main(String args[])
{Personne p = new Personne ("toto", "tata","1/2/1950");
createPdf(p,"d:\\laCARTE.pdf");

}
}


mais j'aimerais que j'arrive à afficher 4 cartes dans la même page pdf pouvez vous m'aider s'il vous plait.