getImageableX - Y, getImageableWidth - Height?

flashray

Erfahrenes Mitglied
Hallo,

wenn ich ein Rechteck mit den Koordinaten getImageableX,Y und Größen getImageableWidht,Height ausdrucke, habe ich auf einem Din A4 Blatt oben 2,3 cm und unten 4,4 cm Rand. Ist diese Ungenauigkeit für die Werte welche die Klasse PageFormat liefert bekannt, oder müssen diese Werte noch angepasst werden?

Code:
public int print(Graphics graphics, PageFormat pageFormat, int PageIndex) throws PrinterException {
	if (pageIndex > 0)
		return Printable.NO_SUCH_PAGE;
	graphics.drawRect((int)pf.getImageableX(),(int)pf.getImageableY(),(int)pf.getImageableWidth(),(int)pf.getImageableHeight());
	return Printable.PAGE_EXISTS;
}

Vg Erdal
 
Um die Druckbaren Ränder zu beeinflussen bin ich jetzt folgendermaßen vorgegagen.
Code:
public int print(Graphics g, PageFormat pFormat, int pageIndex)throws PrinterException {
        if (pageIndex > 0)
            return Printable.NO_SUCH_PAGE;

        /* neues Paper; Ränder und Bereiche beeinflussen nur das rendern von Graphic und    nicht den realen Ausgabebereich des Druckers */
        Paper p = new Paper(); 
        p.setSize(pFormat.getWidth(), pFormat.getHeight());
        // Randbereich Seiten, Oben und Unten 10
        p.setImageableArea(10.0, 10.0, pFormat.getWidth() - 10.0, pFormat.getHeight() - 10.0);
        pFormat.setPaper(p);
        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pFormat.getImageableX(), pFormat.getImageableY());
        // An dieser Stelle wird erst der Seitenrand bei der Druckausgabe beeinflusst
        g2d.setClip(10, 10, (int)pFormat.getWidth() - 10, (int)pFormat.getHeight() - 10);
...

zumindest bin ich so gut klargekommen. Für weitere Vorschläge bin ich dankbar.
lg
sportingt2007
 
Zurück