Convertie une interface en une page pdf

samkiwidouch Messages postés 18 Date d'inscription vendredi 20 janvier 2012 Statut Membre Dernière intervention 16 mai 2012 - 12 mars 2012 à 17:56
samkiwidouch Messages postés 18 Date d'inscription vendredi 20 janvier 2012 Statut Membre Dernière intervention 16 mai 2012 - 15 mars 2012 à 19:30
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 mars 2012 à 08:55
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.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 mars 2012 à 14:39
Tu t'en sort ?
0
samkiwidouch Messages postés 18 Date d'inscription vendredi 20 janvier 2012 Statut Membre Dernière intervention 16 mai 2012
15 mars 2012 à 19:30
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.
0
Rejoignez-nous