[Impression] Probleme classes Book et PrintJob
Bonjour,
j'écris car je n'ai encore trouvé aucun sujet répondant à ma question. j'espère que personne ne me répondra un RTFM!
Voilà je souhaite imprimer plusieurs tableaux (JTable) dans mon application. Pour se faire j'utilise une instance de la classe Book dans laquelle j'ajoute des instance de la classe Printable que j'ai créé avec mes tableaux. Les tableaux ont l'air d'être ajouté car le nombre de pages au total du Book est bon, mais lorsque j'imprime, seulement la première page est imprimée.
Je ne comprend pas d'où ça vient!
Voici le code:
Code:
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 42 43 44 45 46 47 48 49 50 51 52 53
|
try
{
//Création du printerJob
PrinterJob job = PrinterJob.getPrinterJob();
//Creation du format des pages
PageFormat pop = job.defaultPage();
//mise en paysage
pop.setOrientation(PageFormat.LANDSCAPE);
//Création du Book
Book book = new Book();
//Boucle d'ajout des impressions des tableaux pour chaque objet
for(int i =0; i < MyArrayList.size();i++)
{
//AJOUT DU PREMIER TABLEAUX:
//Création du modele
TBH = new TableModelHisto(2);
//Ajout des infos au modele
TBH.AjoutsInfos((MyObj)MyArrayList.get(i), 1,getDateHisto().getDate());
//Creation de l'entete de la page d'impression
headerFormat = new MessageFormat("Traitement 1 Element n°"+((MyObj)MyArrayList.get(i)).getId());
//Création du pide de page de la page d'impression
footerFormat = new MessageFormat("Page {0}");
//Ajout du contenu à la page d'impression (recupération de l'image du tableaux)
printable = TabHisto.getPrintable(JTable.PrintMode.FIT_WIDTH,headerFormat,footerFormat);
//Ajout de la page au livre
book.append(printable, pop);
//AJOUT DU DEUXIEME TABLEAUX : MEME OPERATION
//Les données sont définies par le modèle
TBH = new TableModelHisto(2);
getTabHisto().setModel(TBH);
TBH.AjoutsInfos((MyObj)MyArrayList.get(i), 2,getDateHisto().getDate());
headerFormat = new MessageFormat("Traitement 2 Element n°"+((MyObj)MyArrayList.get(i)).getId());
footerFormat = new MessageFormat("Page {0}");
printable = TabHisto.getPrintable(JTable.PrintMode.FIT_WIDTH,headerFormat,footerFormat);
book.append(printable, pop);
}
//Attribution du book au PrinterJob
job.setPageable(book);
//Affichage de la boite de dialogue d'impression
boolean printAccepted = job.printDialog();
//Si l'impression n'est pas annulée
if (printAccepted)
{
//Impression
job.print();
}
}
catch(Exception PrintException)
{} |
Merci par avance!!!!!!!!!!