begin process at 2010 03 21 06:06:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

Impression d'un JComponent.... au format A4 !!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Impression d'un JComponent.... au format A4 !!!

mardi 5 juillet 2005 à 15:09:56 | Impression d'un JComponent.... au format A4 !!!

Foub12

Bonjour,

j'ai trouvé le code suivant pour imprimer un Jcomponent : «


[code]import java.awt.*;
import javax.swing.*;
import java.awt.print.*;

public class PrintUtilities implements Printable {
/** le composant à imprimer */
private Component componentToBePrinted;

/** imprimer composant
* @param c le composant
*/
public static void printComponent(Component c) {
new PrintUtilities(c).print();
}

/** constructeur
* @param componentToBePrinted compsant à imprimer
*/
public PrintUtilities(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
}

/** print method **/
public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}

/**
* Imprimer en passant en paramètres les marges en millimètres
 * Aucune marge en haut et en bas...
 * @param Mgauche marge gauche de la feuille exprimée en millimètres
 * @param Mdroite marge droite de la feuille exprimée en millimètres
 * @param Mhaut marge haut de la feuille exprimée en millimètres
 * @param Mbas marge bas de la feuille exprimée en millimètres
 */
public void print(int Mgauche, int Mdroite, int Mhaut, int Mbas) {
     boolean annuler = false;
     PrinterJob printJob = PrinterJob.getPrinterJob();
     PageFormat pf = printJob.defaultPage();

     Paper papier = new Paper();
     double gauche = Mgauche * 72 / 25.4;
     double droite = Mdroite * 72 / 25.4;
     double haut = Mhaut * 72 / 25.4;
     double bas = Mbas * 72 / 25.4;
  
     file: //fait une marge de 10 mm (donc 10/25.4 pouces avec un point =1/72 pouces)

     papier.setImageableArea(gauche, haut, papier.getWidth() - (gauche + droite), papier.getHeight()-(haut+bas) );
     pf.setPaper(papier);
     file:
     printJob.setPrintable(this,pf);
     if (printJob.printDialog())
          try {
 printJob.print();
          } catch(PrinterException pe) {
 System.out.println("Error printing: " + pe);
          }
     else annuler = true;
  
}

/** print method
* @param g graphisme
* @param pageFormat format
* @param pageIndex index
* @return valeur de retour de l'impression
*/

public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
}
}

public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}

/**
* @param c composant
*/

public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}[/code] »

Cependant, quand j'utilise cette classe, l'imprimante me renvoie le message d'erreur suivante : « Remplacez le papier par Lettre ou forcez l'impression sur A4 ». Auriez-vous une idée des lignes qu'il me faut changer pour que mon document s'imprime au format A4 en paysage ???

Merci d'avance.
Fabien



Cette discussion est classée dans : public, print, param, printjob, componenttobeprinted


Répondre à ce message

Sujets en rapport avec ce message

mise en page pour une impression [ par olympique_Mars_08 ] Bonjour,J'ai un petit probleme, je voudrais imprimer le contenu d'une jtextarea, ca j'y arrive le probleme c'est que le codde que j'utilise ne fait pa impression table [ par javateux ] Bonjour, g recupéré une source qui me permet d'imprimer des composants swing. Je voudrai pouvoir imprimer une page en paysage, car la table que je veu Impression frame [ par Dedeloux ] Bonjour, voila j'ai un formulaire graphique et je veux imprimer ce formulaire, j'ai donc récuperé une classe qui me permet d'imprimer ma fenetre, ce q Impression sur plusieurs pages [ par ApoKlypse ] Bonjour ! Voila je ne parviens pas a imprimer le reste d'un document qui dépasse de la largeur d'une feuille. N'y a t'il pas un moyen pour le faire au Impression paysage avec PrintJob [ par lupiotte ] bonjour,je sais qu'il est possible d'imprimer en paysage avec printerJob, mais je ne sais pas si il est possible de le faire avec printJob.Voila ce qu Impression de Book() : 1 seule page imprimée ??? [ par muvperrin ] bonjour a tousj'ai un petit probleme d'impression avec les Book() en fait le book renvoie bien le bon nombre de page par la fonction getNumberOfPages( Problème dans la programmation de l'impression d'une jFrame [ par beberto56 ] Bonjour,je suis dans la dernière phase de la programmation de mon formulaire et je suis en plein dans la programmation de ma classe d'impression hors impression avec une applet [ par neo1260 ] Bonjour, je suis désespérer, je suis toujour sur mon probléme d'impression et je ne sais pas ce que c'est le probléme. L'applet d'impression ne se lan Help meeee, Help meeeee my friends.... [ par nataS22 ] Salut,Il se trouve que maintenant j'arrive à faire fonctionner ce bout de code à peu près correctement. En effet j'ai un problème à l'affichage. CAD q PrintUtilities et JPanel??? urgent!!! [ par alexglvr ] Bonjour à tous,j'utilise la class printutilities pour effectuer l'impression d'un JPanel. Le pb est que seulement une partie du JPanel est imprimé (ca


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales