# Buffered Image drucken



## Stillmatic1985 (21. Nov 2009)

Hallo zusammen!

Ich habe ein kleine Problem!
Ich möchte ein Buffered Image drucken!
Doch bei mir kommt einfach kein Bild raus!

Ich nutze die Kostenlose Klasse JChart um ein Kuchendiagramm  zu erstellen!


```
//hier oben wird das Diagramm mit Daten gefüllt
..
BufferedImage out   =   chart.createBufferedImage(700, 700);
meineDaten.setMyImage(out);
```


In meiner Druckfunktion führe ich folgendes aus!

```
Graphics g;
g.drawString( "TestTestTestTest" , 100, 180 );
g.drawImage(meineDaten.getMyImage(), 100, 244, null);
```

TestTestTest wird gedruckt. Mein Bild jedoch nicht!

Kann man überhaupt ein BufferedImage drucken?


----------



## Steev (21. Nov 2009)

Hallo, natürlich kann man BufferedImages drucken. Ich würde an deiner Stelle überprüfen, ob deine Methode "getMyImage" auch tatsächlich das Bild zurückgibt, das du drucken willst.

Folgend ein kleines Beispiel zum drucken mit Java:

[Java]import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintTest implements Printable {
    public static void main(String[] args) {
        new PrintTest();
    }

    public PrintTest() {
        try {
            PrinterJob pjob = PrinterJob.getPrinterJob();
            if (pjob.printDialog() == false)
                return;
            pjob.setPrintable(this);
            pjob.print();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if (pageIndex > 0)
            return NO_SUCH_PAGE;
        try {
            Graphics2D g2 = (Graphics2D) graphics;

            Toolkit tk = Toolkit.getDefaultToolkit();
            Dimension d = tk.getScreenSize();
            Robot robot = new Robot();
            BufferedImage img = robot.createScreenCapture(new Rectangle(0, 0, d.width, d.height));
            g2.drawImage(img, 0, 0, null);
        } catch (Exception e) {
            return NO_SUCH_PAGE;
        }
        return PAGE_EXISTS;
    }
}[/Java]

Wenn du nur ein leeres Bild oder ein weises Bild zurückbekommst, dann wird dein Bild zwar gedruckt, aber du siehst es nicht...


----------

