Hintergrund schwarz beim Drucken mit Graphics2D

sportingt2007

Grünschnabel
Hallo,
möchte den Inhalt einer JTextArea auf einem Drucker ausgeben.
Nutze dazu die Klasse Graphics2D. Vom Grundprinzip funktioniert das auch schon recht gut (!?).
Ich habe jetzt nur ein Problem mit dem Hintergrung. Beim ersten Ausdruck ist der gesamte Hintergrung in größe des Formats schwarz, Nur im Bereich der Textarea
ist der Hintergrund weiß.
Wenn ich den Druck wiederhole, ist dann alles weiß !?
Irgendwie scheint da noch der Wurm drin! Bitte um schnelle Hilfe.

mfg
sportingt2007


Code:
/*
 * akPrint.java
 *
 * Created on 10. September 2007, 13:18
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package akprintlabel;
import java.awt.print.*;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
/**
 *
 * @author TKott
 */
public class akPrint implements Printable{
    public JTextArea area;
    public PageFormat pageFormat;
    public Dimension pageDim;
    public BufferedImage bufimg;
   
    public akPrint(JTextArea area) throws PrinterException {
        this.area = area;
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(this);
        job.print();
    }
    
    public int print(Graphics g, PageFormat pFormat, int pageIndex)throws PrinterException {
        if (pageIndex > 0)
            return Printable.NO_SUCH_PAGE;
        pageFormat = new PageFormat();
        pageDim = new Dimension((int)pageFormat.getImageableWidth(),(int)pageFormat.getImageableHeight());
        area.setPreferredSize(pageDim);
        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pFormat.getImageableX(), pFormat.getImageableY());
        bufimg = null;
        bufimg = new  BufferedImage(pageDim.width,pageDim.height,BufferedImage.TYPE_BYTE_GRAY);
        area.paint(bufimg.getGraphics());
        g2d.drawImage(bufimg,0,0,area);
        g2d.dispose();
        return Printable.PAGE_EXISTS;
    }
}
 
Zurück