Ik ben bezig met een zakelijke (vrij grote) client-server applicatie in Java, waarbij ik SWT gebruik voor zowel de GUI als het printen...
Echter de documentatie is nogal beperkt van SWT...
Zo heb ik niet kunnen vinden hoe je aan kan geven dat je LANDSCAPE wilt printen (het zit iig niet in de PrinterData)
Daarom maak ik een Image aan (waarbij hoogte en breedte worden omgewisseld), teken ik daar vervolgens mijn pagina in. Dan maak ik een 2e image aan (in portrait) en copieer ik al mijn beeldpunten van de landscape naar de portrait image (x wordt y en y wordt -x).
Deze uiteindelijke Image teken ik met GC.drawImage direct op de "printer"...
Echter mijn ontwikkel-machine doet dit prima, maar op de test-machine (en ook de uiteindelijk productie-machine) krijg ik een SWT_NO_MORE_HANDLES error bij het aanmaken van de allereerste (landscape) Image (nog voordat ik ga tekenen).
De testmachine heeft 512 MB en stuurt en printer aan in 600x600 dpi, maar de test-machine heeft 256 MB en stuurt een printer aan in 1200x1200 dpi...
Hoe krijg ik dit opgelost ??
Hij crasht al op de 2e regel (bij het aanmaken van landscapeImg)
Echter de documentatie is nogal beperkt van SWT...
Zo heb ik niet kunnen vinden hoe je aan kan geven dat je LANDSCAPE wilt printen (het zit iig niet in de PrinterData)
Daarom maak ik een Image aan (waarbij hoogte en breedte worden omgewisseld), teken ik daar vervolgens mijn pagina in. Dan maak ik een 2e image aan (in portrait) en copieer ik al mijn beeldpunten van de landscape naar de portrait image (x wordt y en y wordt -x).
Deze uiteindelijke Image teken ik met GC.drawImage direct op de "printer"...
Echter mijn ontwikkel-machine doet dit prima, maar op de test-machine (en ook de uiteindelijk productie-machine) krijg ik een SWT_NO_MORE_HANDLES error bij het aanmaken van de allereerste (landscape) Image (nog voordat ik ga tekenen).
De testmachine heeft 512 MB en stuurt en printer aan in 600x600 dpi, maar de test-machine heeft 256 MB en stuurt een printer aan in 1200x1200 dpi...
Hoe krijg ik dit opgelost ??
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Rectangle clientArea = printer.getClientArea(); landscapeImg = new Image(printer, clientArea.height, clientArea.width); gc = new GC(landscapeImg); .. nu ga ik tekenen op mijn landscape Image met de gc gc.dispose(); // create portrait image Rectangle clientArea = printer.getClientArea(); Image portraitImg = new Image(printer, clientArea.width, clientArea.height); .. copieer data van landscape naar portrait Image Image correctedImg = new Image(printer, portraitData); printerGC.drawImage(correctedImg, 0, 0); correctedImg.dispose(); portraitImg.dispose(); landscapeImg.dispose(); |
Hij crasht al op de 2e regel (bij het aanmaken van landscapeImg)
[ Voor 25% gewijzigd door GarBaGe op 21-08-2003 13:00 ]
Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD