ich möchte bei der Druckausgabe einen Rahmen ausgeben.
Ich programmiere unter Ubuntu und anschließend erzeuge ich unter Windows ein Windowsprogramm.
Drucker: HP Laserjet 1100, Blattgröße A4
Unter Unbuntu funktioniert alles.
Code: Alles auswählen
printer->getPageMargins(&left,&top,&right,&bottom,unit);
Linux+Windows: left=20mm top=10mm right=10mm bottom=10mm
Code: Alles auswählen
QRect koord = printer->pageRect();
int x1,y1,x2,y2;
koord.getCoords(&x1,&y1,&x2,&y2);
Linux: x1=76 y1=38 x2=754 y2=1084
Windows: x1=76 y1=38 x2=755 y2=1084
Code: Alles auswählen
koord = printer->paperRect();
koord.getCoords(&x1,&y1,&x2,&y2);
Linux: x1=0 y1=0 x2=792 y2=1122
Windows: x1=0 y1=0 x2=793 y2=1121
Code: Alles auswählen
QRect rect = painter->viewport();
rect.getCoords(&x1,&y1,&x2,&y2);
Linux: x1=0 y1=0 x2=678 y2=1046 754-76 = 678 i.O. bzw. 1084-38 = 1046 i.O.
Windows: y1=0 y1=0 x2=634 y2=1003 755-76 = 679 != 634
Wähle ich einen PDF-Drucker gibt es unter Linux bzw. Windows keine Probleme.
In der Windowswelt habe ich auch weitere Drucker ausprobiert, teilweise mit dem gleichen Effekt, das der Viewport zu klein ist.
Frage:
Kann ich den Viewport beeinflussen ?
Grüße
KuhTee