Bonjour,
Je suis confronté à un problème que je n'arrive pas a résoudre.
Dans mon applet signé, les utilisateur doivent pouvoir imprimer et choisir leur imprimante. Pour cela j'utilise l'objet PrinterJob et sa méthode pageDialog() à laquelle je passe mon objet PageFormat
Chez certain utilisateurs le fait d'appeler printerJob.pageDialog(pageFormat) et de modifier le format d'impression, passer du A4 par défaut au A3, chamboule de manière complètement illogique les marges défini dans l'objet PageFormat. Du coup impossible d'imprimer des documents corrects.
Le pire, parce que ça peut être pire, c'est que chez moi toi va bien quelques soit les imprimantes que je choisit (réelle, marque différentes, virtuelle ....)
En plus allez expliquer au client que "ben c du code dans le plugin, je sais pas si je peux y faire grand chose ...." .....
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
36
37
38
39
40
41
42
43
44 btnMep.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //appel de la fenetre de Mise en page pgf = printJob.pageDialog(pgf); setPaper(pgf); //dessine le cadre de la zone a imprimer dessinerRect(); } }); //Méthode mettant à jour le paper du contexte d'impression private void setPaper(PageFormat pgf) { setPaperImageableArea(pgf.getOrientation()); } //Méthode mettant à jour le paper du contexte d'impression private void setPaperImageableArea(int orientation) { switch (orientation) { case 1 : paper.setImageableArea(pgf.getImageableX(), pgf.getImageableY(), pgf.getImageableWidth(), pgf.getImageableHeight()); break; case 0 : paper.setImageableArea(pgf.getImageableX(), pgf.getImageableY(), pgf.getImageableHeight(), pgf.getImageableWidth()); break; } }
Si vous avez une solution je suis preneur, même un idée pour reproduire le bug chez moi.
Merci






Répondre avec citation
Partager