Hallo mensen,
Ik ben momenteel bezig met een apllicatie die een serie nummer uit een lezertje moet halen en dit dan in een plaatje moet verwerken.
Het plaatje zal daarna worden geprint met een DYMO labelmanager.
Ik gebruik linten van 12 mm breed.
Ik heb een klasse geschreven die Printable implementeerd en kan er ook succesvol mee printen
alleen is de label die geprint wordt te kort... ik moet 11 cm printen en de label DYMO stopt met printen op 9 cm
Ik heb allerlei dingen geprobeert om de paper size aan te passen maar zonder enig resultaat.
Ik weet dat de printer het aan kan want ik heb via een ander programma (glabels) hetzelfde plaatje geprint op de DYMO en dan komt er wel netje 11 cm lint uit.
Ik heb Glabels en mijn applicatie ook naar een pdf printer gestuurd en dan is te zien dat de uitkomt ook zeer anders is.
(mijn applicatie lijkt de PDF in "letter" formaat te printen.
Hier beide PDF-jes om het verschil te zien:
de door Glabels geproduceerde PDF
de door mijn applicatie geproduceerde PDF
Hieronder staat de code.
Gebruik ik misschien de verkeerde klasse om dit probleem op te lossen?
of is het misschien helemaal niet mogelijk met java?
Ik ben momenteel bezig met een apllicatie die een serie nummer uit een lezertje moet halen en dit dan in een plaatje moet verwerken.
Het plaatje zal daarna worden geprint met een DYMO labelmanager.
Ik gebruik linten van 12 mm breed.
Ik heb een klasse geschreven die Printable implementeerd en kan er ook succesvol mee printen
alleen is de label die geprint wordt te kort... ik moet 11 cm printen en de label DYMO stopt met printen op 9 cm
Ik heb allerlei dingen geprobeert om de paper size aan te passen maar zonder enig resultaat.
Ik weet dat de printer het aan kan want ik heb via een ander programma (glabels) hetzelfde plaatje geprint op de DYMO en dan komt er wel netje 11 cm lint uit.
Ik heb Glabels en mijn applicatie ook naar een pdf printer gestuurd en dan is te zien dat de uitkomt ook zeer anders is.
(mijn applicatie lijkt de PDF in "letter" formaat te printen.
Hier beide PDF-jes om het verschil te zien:
de door Glabels geproduceerde PDF
de door mijn applicatie geproduceerde PDF
Hieronder staat de code.
Gebruik ik misschien de verkeerde klasse om dit probleem op te lossen?
of is het misschien helemaal niet mogelijk met java?
Java:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| package ttyTest; import java.awt.Graphics; import java.awt.Image; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import javax.print.PrintService; public class KpPrintSticker implements Printable { private Image kpSticker=null; private static final String printerName="PDF";//"DYMO"; private final double widthPaper = 1.2*(72/2.54);//72pixels per inch private final double heightPaper = 11*(72/2.54); public KpPrintSticker(Image sticker){ kpSticker=sticker; } public void printSticker(boolean usePrintMenu){ boolean printerSelected=false; PrinterJob job = PrinterJob.getPrinterJob(); if(usePrintMenu){ if (job.printDialog()) { printerSelected=true; } }else{ PrintService[] printService = PrinterJob.lookupPrintServices(); for (int i = 0; i < printService.length; i++) { //System.out.println(printService[i].getName()); if (printService[i].getName().startsWith(printerName)) { //.startsWith("DYMO") try { job.setPrintService(printService[i]); } catch (PrinterException e) { e.printStackTrace(); } printerSelected=true; break ; } } } if(!printerSelected)return; PageFormat pageFormat = job.defaultPage(); Paper paper = new Paper(); paper.setSize(widthPaper, heightPaper); paper.setImageableArea(0, 0, widthPaper, heightPaper); pageFormat.setPaper(paper); pageFormat.setOrientation(PageFormat.LANDSCAPE); try { //job.pageDialog(pageFormat); job.setJobName("Sirius sticker"); job.setPrintable(this,pageFormat); job.print(); } catch (PrinterException ex) { ex.printStackTrace(); } } public int print(Graphics g, PageFormat pf, int page) throws PrinterException { System.out.println("imageable x "+pf.getImageableX()+" y "+pf.getImageableY()+ " width "+pf.getImageableWidth()+" height "+pf.getImageableHeight()); if(page >0)return NO_SUCH_PAGE; g.setClip(0, 0,kpSticker.getWidth(null), kpSticker.getHeight(null)); // Now we perform our rendering g.drawImage(kpSticker,0,0,null); // tell the caller that this page is part of the printed document return PAGE_EXISTS; } } |