Ik maak gebruik van een labelprinter waarmee ik informatie moet afdrukken op labels van een formaat van 31.8 mm breed en 9.5 mm hoog. De labelprinter waarmee ik dit afdruk gaat niet uit van de labels die aanwezig zijn, maar drukt af aan de hand van de hoogte-informatie over de pagina die wordt gestuurd door programma's (een A4 resulteert in zo'n 30 labels.
Voor het afdrukken vanuit java maak ik gebruik van de javax.print-api icm een Printable-object dat afgedrukt wordt.
Om af te drukken wordt er vanuit java op 2 manieren een grootte doorgegeven, namelijk het gebied waarbinnen afgedrukt wordt en het formaat van de pagina waarop afgedrukt wordt.
Het doorgeven van het formaat van een pagina gaat via de class Custom (aanpak hiervandaan (duits, 2006))
Het probleem is dat als ik afdruk dat er dan in totaal 4 labels wordt afgedrukt terwijl het formaat klopt, om het verder te testen (en ribbon + labels een beetje te sparen) maak ik gebruik van PDFCreator om het resultaat te zien. In PDFCreator wordt een formaat opgegeven van 1.01*1.46 inch (25.7*37.1 mm), afgerond is het het A10 formaat.
Hoe kan ik via java doorgeven wat het formaat van de pagina (label) is die afgedrukt moet worden als deze afwijkt van standaard formaten?
MediaSize.findMedia(width, height, MediaSize.MM) levert een NPE op.
Voor het afdrukken vanuit java maak ik gebruik van de javax.print-api icm een Printable-object dat afgedrukt wordt.
Om af te drukken wordt er vanuit java op 2 manieren een grootte doorgegeven, namelijk het gebied waarbinnen afgedrukt wordt en het formaat van de pagina waarop afgedrukt wordt.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
| class Custom extends MediaSizeName { public Custom(int id) { super(id); } } Custom LABEL = new Custom(100); PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet(); [..] MediaPrintableArea mpa = new MediaPrintableArea(0f, 0f, width, height, MediaPrintableArea.MM); MediaSize ms = new MediaSize(width, height, MediaSize.MM, LABEL); attributeSet.add(LABEL); attributeSet.add(mpa); [...] DocPrintJob dbj = aPrintService.createPrintJob(); Doc doc = new SimpleDoc(pr, DocFlavor.SERVICE_FORMATTED.PRINTABLE, null); dpj.print(doc, attributeSet); |
Het doorgeven van het formaat van een pagina gaat via de class Custom (aanpak hiervandaan (duits, 2006))
Het probleem is dat als ik afdruk dat er dan in totaal 4 labels wordt afgedrukt terwijl het formaat klopt, om het verder te testen (en ribbon + labels een beetje te sparen) maak ik gebruik van PDFCreator om het resultaat te zien. In PDFCreator wordt een formaat opgegeven van 1.01*1.46 inch (25.7*37.1 mm), afgerond is het het A10 formaat.
Hoe kan ik via java doorgeven wat het formaat van de pagina (label) is die afgedrukt moet worden als deze afwijkt van standaard formaten?
MediaSize.findMedia(width, height, MediaSize.MM) levert een NPE op.
[ Voor 0% gewijzigd door Shadowman op 05-07-2010 14:55 . Reden: extends vergeten ]