Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DIALOG CONFIGURATION IMPRESSION A4


Information sur la source

Catégorie :Péripheriques Niveau : Initié Date de création : 19/05/2004 Date de mise à jour : 04/08/2004 19:42:33 Vu / téléchargé: 11 703 / 1 579

Note :
8,75 / 10 - par 4 personnes
8,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
C'est une boîte de dialogue qui permet de configurer une impression en choisissant les marges, l'orientation, l'emplacement de ce qu'on imprime et sa dimension exacte
elle dispose d'un zoli apercu aussi ;-))


je ne l'ai faite que pour le format A4 (parce que je suis égoïste ;-p)
mais ca doît pas être trop compliqué de rajouter un choix de format
 

Conclusion

Utilise PrintJob !!! (suite à des problèmes de compatibilités des attributs de PrinterJob)

classe impression.Impression : la boîte de dialogue
interface impression.ComponentImprimable : l'objet à imprimer doit l'implementer

il y a également une application bidon pour donner un exemple

tout Object est imprimable dès qu'il implemente l'interface

celle-ci demande une méthode
public void paintComponent(Graphics g)
dans laquelle ce qui doît être imprimé est dessiné sur g

ainsi qu'une méthode demandant de désactiver les doubles buffers durant l'impression
(nécessaire pour préserver la qualité lors des redimensionnements)

pour un JComponent, il est donc necessaire de redefinir paintComponent car elle est protected
il faut donc au minimum rajouter
public void paintComponent(Graphics g) {
  super.paintComponent(g);
  //dessins...
}

pour une JFrame (qui n'est pas un JComponent) paintComponent n'existe pas à l'origine. On peut définir par exemple
public void paintComponent(Graphics g) {
  super.paint(g);
}

mise à jour 1 : correction d'un alignement dans la boîte de dialogue
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   classes
    •   bidon
      • Application1.classTélécharger ce fichier [Réservé aux membres club]942 octets
      • Cadre1$1.classTélécharger ce fichier [Réservé aux membres club]659 octets
      • Cadre1$2.classTélécharger ce fichier [Réservé aux membres club]656 octets
      • Cadre1.classTélécharger ce fichier [Réservé aux membres club]2 965 octets
      • paneauImprimable.classTélécharger ce fichier [Réservé aux membres club]1 603 octets
    •   impression
      • ComponentImprimable.classTélécharger ce fichier [Réservé aux membres club]265 octets
      • Impression$1.classTélécharger ce fichier [Réservé aux membres club]703 octets
      • Impression$10.classTélécharger ce fichier [Réservé aux membres club]708 octets
      • Impression$11.classTélécharger ce fichier [Réservé aux membres club]708 octets
      • Impression$12.classTélécharger ce fichier [Réservé aux membres club]706 octets
      • Impression$13.classTélécharger ce fichier [Réservé aux membres club]706 octets
      • Impression$14.classTélécharger ce fichier [Réservé aux membres club]706 octets
      • Impression$15.classTélécharger ce fichier [Réservé aux membres club]706 octets
      • Impression$2.classTélécharger ce fichier [Réservé aux membres club]701 octets
      • Impression$3.classTélécharger ce fichier [Réservé aux membres club]706 octets
      • Impression$4.classTélécharger ce fichier [Réservé aux membres club]706 octets
      • Impression$5.classTélécharger ce fichier [Réservé aux membres club]708 octets
      • Impression$6.classTélécharger ce fichier [Réservé aux membres club]708 octets
      • Impression$7.classTélécharger ce fichier [Réservé aux membres club]703 octets
      • Impression$8.classTélécharger ce fichier [Réservé aux membres club]703 octets
      • Impression$9.classTélécharger ce fichier [Réservé aux membres club]703 octets
      • Impression.classTélécharger ce fichier [Réservé aux membres club]15 918 octets
      • PlanApercu.classTélécharger ce fichier [Réservé aux membres club]2 217 octets
    •   package cache
      • bidon.dep2Télécharger ce fichier [Réservé aux membres club]4 180 octets
      • impression.dep2Télécharger ce fichier [Réservé aux membres club]10 774 octets
  •   src
  • Bidon.jarTélécharger ce fichier [Réservé aux membres club]39 031 octets

Télécharger le zip

Historique

28 juillet 2004 23:58:16 :
deuxième M.A.J. : correction d'une erreur lors des changements d'échelle
02 août 2004 12:24:57 :
Suppression d'une sortie sur la console inutile
03 août 2004 22:58:42 :
Réécriture en utilisant PrinterJob au lieu de PrintJob
04 août 2004 19:36:56 :
Suite à des problèmes de compatibilité avec PrinterJob (toutes les imprimantes n'acceptent pas tous les attributs), retour à ce cher PrintJob ca marche bien mieux ;-) par rapport à la version précédente avec PrintJob, l'impression est de meilleur qualité et il y a une prise en compte des double buffer Prochaine version lorsque j'aurais le temps : prise en compte d'autres formats de page
04 août 2004 19:42:33 :
Suite à des problèmes de compatibilité de PrinterJob avec certaines imprimantes (tous les attributs ne sont pas acceptés par toutes les imprimantes), je reviens à ce cher PrintJob ;-) ca marche bien mieux... Par rapport à la dernière version utilisant PrintJob, l'impression est de meilleur qualité et/car il y a une gestion du double buffer Prochaine version : tenir compte des differents formats de papier

Commentaires et avis

signaler à un administrateur
Commentaire de cid019 le 02/08/2004 12:00:43

voila j'ai essaye ce code et chez moi il ne marche pas correctement : il me met systematiquement l'erreur suivante : erreur impression.
Je sais pas d'ou ca vient, j'arrive pas a voir ou c'est dans le code.

signaler à un administrateur
Commentaire de Dobel le 02/08/2004 12:21:32

Bah je sais pas, ca marche sans problème chez moi ;-p

Est-ce que tu pourrais me donner tout le message d'erreur STP ?

je vais refiaire une petite MAJ mais c'est juste pour supprimer une sortie sur System.out que j'ai oublé de retirer

signaler à un administrateur
Commentaire de cid019 le 02/08/2004 13:28:41

il m'ouvre une fenetre avec le titre : EPSON dont le message est : erreur d'impression.
c'est tout.
C'est peut etre un message du pilote de l'imprimante.
Ce qui est etrange c'est que si je passe par une impression classique sans ton systeme, il m'imprime ma page... alors je sais pas trop.
Merci

signaler à un administrateur
Commentaire de Dobel le 02/08/2004 14:56:14

ouaip, c'est ennuyeux car j'avais l'intention d'utiliser ma boîte dans un programme
j'ai aussi une epson et ca passe

je vais bientôt partir en vacance donc je vais pas avoir le temps de m'en occuper mais quand je serais de retour(19-20 aout), je mettrais un post sur le forum pour demander de tester le programme en indiquant si ca fonctionne ou non sur quelle configuration

ca vient peut-être du fait que j'utilise le vieux PrintJob au lieu de PrinterJob
(je trouve printJob beaucoup plus efficace et pratique... et surtout, je sais pas régler la résolution avec PrinterJob donc c'est inutilisable...)

signaler à un administrateur
Commentaire de Dobel le 02/08/2004 16:48:02

j'ai regardé sur le site de sun, il n'y a pas de bug récent concernant printJob mais je demanderais quand même au forum de tester mon programme

Salut

signaler à un administrateur
Commentaire de Dobel le 03/08/2004 23:03:41

Voila, comme je suis toujours pas en vacance ;-)
je l'ai réécrite en utilisant PrinterJob
mes craintes sur la résolution étaient sans fondement
;-o
ca marche très bien

y a t-il toujours des erreurs ?

PS : ce qui est sur la capture d'écran : j'espère à la rentrée dans les sources ;-)

A+

signaler à un administrateur
Commentaire de Dobel le 04/08/2004 00:02:24

ARGHH réctification : ca déconne lorsque je change la résolution de l'imprimante !!!

je reviens à PrintJob ?

signaler à un administrateur
Commentaire de cid019 le 04/08/2004 08:34:51

ok bon deja ca marche en a4 c'est deja super...
Par contre ne saurais-tu pas pq dans le printerJob il fixe systematiquement le max a 9999.
J'ai vu que dans la version precedente le max etait a 1.
Serait-il possible aussi de la fixer a 1 pour un PrinterJob? ca m'arrangerait beaucoup...
Par contre je devrais faire aussi des impressions A3 et la c'est vrai que ca plante car j'ai beau lui indiquer le bon bac où prendre les feuilles A3, par de faut il choisit le bac manule, donc uniquement des feuilles A4. snif...
Donc si tu pouvais me depanner encore une fois, je t'en serais extremement reconnaissant.
Merci

signaler à un administrateur
Commentaire de Dobel le 04/08/2004 10:59:09

le max ?
sinon, si tu passes par les javax.print.attribute (MediaTray je crois) pour indiquer le bac, ce n'est pas sur que ce soit reconnu par l'imprimante, malheureusement...
je vais faire quelques tests mais sinon, je crois que je vais revenir à PrintJob !

signaler à un administrateur
Commentaire de cid019 le 04/08/2004 11:08:49

j'ai vu que dans cette class il y a la classe ResolutionSyntax. Peut etre pourrais-tu t'en servir pour changer ta resolution?...

signaler à un administrateur
Commentaire de Dobel le 04/08/2004 11:12:26

c'est ce sue j'étais en train d'essayer de faire mais ca marche pas ;-(
même si je change la qualité de l'impression avec PrintQuality, la qualité est bien changée dans la boîte de dialogue de l'imprimante, mais pas lors de l'impression...
triste...

signaler à un administrateur
Commentaire de cid019 le 04/08/2004 11:17:22

Et en utilisant uniquement les classes de javax.swing?
J'ai vu qu'il y avait pas mal de choses pour definir des Attribute. Maintenant je sais pas trop comment ca marche...

signaler à un administrateur
Commentaire de cid019 le 04/08/2004 11:17:55

erreur c'est pas javax .swing mais javax.print...

signaler à un administrateur
Commentaire de cid019 le 04/08/2004 11:21:41

Sinon est-ce que ca te derangerait si tu reviens sur le printJob de faire un truc pour config la resolution afin d'avoir le choix de celle-ci? (A4 ou A3)...
Merci
a+

signaler à un administrateur
Commentaire de Dobel le 04/08/2004 11:58:39

Non, ca ne me dérangerais pas du tout, au contraire, mais je part demain jusqu'au 19-20 aout donc ce sera pour plus tard !!
(le seul problème, c'est que je ne peux pas connaitre les résolutions acceptées par l'imprimante, mais je peux laisser un choix)

sinon, voila les attributs acceptés par mon imprimante :
class javax.print.attribute.standard.JobName
class javax.print.attribute.standard.RequestingUserName
class javax.print.attribute.standard.Copies
class javax.print.attribute.standard.Destination
class javax.print.attribute.standard.OrientationRequested
class javax.print.attribute.standard.PageRanges
class javax.print.attribute.standard.Media
class javax.print.attribute.standard.MediaPrintableArea
class javax.print.attribute.standard.Fidelity
class sun.print.SunAlternateMedia
class javax.print.attribute.standard.Chromaticity
class javax.print.attribute.standard.Sides
class javax.print.attribute.standard.SheetCollate

ouaip, ya pas la résolution, ni la qualité

PrinterJob, c'est de la m***e

A+

signaler à un administrateur
Commentaire de cid019 le 04/08/2004 12:06:06

ok merci
je vais essayer de reprendre ton prog avec le printjob sur une autre imprimante et si ca marche je te rajoute la config de la resolution sinon...(triste...) faut que ca marche...
a+

signaler à un administrateur
Commentaire de Dobel le 04/08/2004 19:48:46

Retour à PrintJob, avec quelques modifications
finalement, la gestion de la résolution d'impression ne se fait pas dans le programme mais dans la boîte de dialogue de l'imprimante
(en fait, le paramètre résolution d'un PrintJob est indépendant de la résolution d'impression)
il n'y a plus aucun problème avec les tailles d'impression

Cette fois-ci tout semble marcher
désolé, pas encore de gestion du format de papier

Salut

signaler à un administrateur
Commentaire de elouachanirachid le 19/01/2005 19:01:38

hello,
je voudrais savoir comment creer un API d'un imprimer les document et les base de donner.merci.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
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 BAÏSE, 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
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.