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

Documents Java Discussion :

problème format de page à l'impression


Sujet :

Documents Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut problème format de page à l'impression
    Bonjour,

    Je tombe sur un problème d'impression que je n'arrive pas à résoudre !

    J'ai créé une classe en java (swing) qui permet d'imprimer des banderoles. Ma classe implémente Printable.

    Je dois imprimer des banderoles de différentes tailles (A2: 594 x 420 mm et un format non standard 594 x 300 mm). Mon imprimante est configurée par défaut en A2. Lorsque je lance une impression en A2, tout se passe bien, la page sort sans soucis. Mais lorsque je configure mon format de papier (dans mon application) en 594 x 300 mm, le panneau de mon imprimante m'indique "err format papier". Et je suis obligé d'intervenir au niveau des boutons de mon imprimante pour que ma page sorte !

    Je ne sais pas comment faire pour imprimer ma feuille 594x300 alors que mon imprimante est configurée par défaut en 594x420 et ainsi ignorer cette erreur (sans obliger l'utilisateur à passer par un printDialog) !

    J'ai donc essayé de modifier le format de l'impression avec les classes PageFormat et Paper avant d'appeler la méthode Print. En debug, les modifs sont bien prises en compte mais j'ai tout de même une erreur sur le panneau de mon imprimante

    Voilà le code utilisé pour imprimer :


    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
    21
    22
    if (s.equals(btnPrint)) {
        if (cmbFormat.getSelectedItem().equals("59,4 X 42")) {
            PrinterJob printJob = PrinterJob.getPrinterJob();
            PageFormat pageFormat = printJob.defaultPage();
            printJob.setPrintable(this, pageFormat);
            try {
                printJob.print();
            } catch (Exception exception) { }
        }
        else {
        // format 594 x 300 mm						
            PrinterJob printJob = PrinterJob.getPrinterJob(); 
            PageFormat pf = printJob.defaultPage();
            Paper paper = pf.getPaper();
            paper.setImageableArea(15, 15, (30/2.54*72) - (2*15), (59.4/2.54*72) - (2*15));
            pf.setPaper(paper); 
            printJob.setPrintable(this, pf);
            try {
                printJob.print();
            } catch (PrinterException exception) { }
        }
    }
    Est-ce que quelqu'un à une idée ? Je vous en serai très reconnaissant !

    Merci beaucoup

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut précision
    Je viens d'essayer d'imprimer à l'aide de la classe Book :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    	public void print() throws PrinterException {
     
    		PrinterJob pPrinterJob = PrinterJob.getPrinterJob();
    		PageFormat pPageFormat = pPrinterJob.defaultPage();
    		Paper pPaper = pPageFormat.getPaper();
    		pPaper.setImageableArea(3.0, 3.0, pPaper.getWidth() - 6.0, pPaper.getHeight() - 6.0);
    		// NE FONCTIONNE PAS
    		//pPaper.setSize(30/2.54*72, 59.4/2.54*72);
    		// FONCTIONNE
    		pPaper.setSize(21/2.54*72, 29.7/2.54*72);
    		pPageFormat.setPaper(pPaper);
    		pPageFormat = pPrinterJob.pageDialog(pPageFormat);
    		Book pBook = new Book();
    		pBook.append(this, pPageFormat);
    		pPrinterJob.setPageable(pBook);
    		pPrinterJob.print();
     
    	}
     
     
    	public int print(Graphics g, PageFormat pf, int pi)
    			throws PrinterException {
    		if ( pi >= 1 ) return(Printable.NO_SUCH_PAGE);
     
    		FontMetrics fm;
    	    Rectangle2D r;
    		g.setColor(Color.black);
     
    		g.setFont(new Font(TYPO, Font.BOLD, 70));
    		fm = g.getFontMetrics();
    		r = fm.getStringBounds("TEST",g);
    		g.drawString("TEST", (int)(((pf.getWidth()- fm.stringWidth("TEST"))/2) + (37/2)), 170);
     
    		return 0;
    	}
    Avec des pages non standard (300x594) cela ne fonctionne toujours pas. Par contre, j'ai fait un test avec un format standard A4 (210*297) et là, ça fonctionne (alors que l'imprimante est encore configurée en A2) !
    Est-ce que quelqu'un a une idée ? Merci par avance, je ne sais plus comment m'y prendre !

Discussions similaires

  1. Problème de mise en page d'impression Excel
    Par Ptchat33 dans le forum Jasper
    Réponses: 0
    Dernier message: 12/05/2009, 11h10
  2. Problème de format de pages (portrait et paysage)
    Par ideranaba dans le forum iReport
    Réponses: 1
    Dernier message: 21/11/2008, 14h27
  3. [SSRS][2K5] Problème Format d'impression
    Par Bjuice2 dans le forum SSRS
    Réponses: 2
    Dernier message: 17/04/2008, 14h57
  4. Choix du format de page pour impression
    Par looping dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2007, 19h19
  5. problème saut de page à l'impression
    Par beavis6511 dans le forum ASP
    Réponses: 4
    Dernier message: 01/02/2007, 12h33

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