# Standard Windows-Druck-Dialog



## Hitrix (31. Jan 2011)

Hallo zusammen,

mich würde intressieren wie ich anstelle von dem DruckDialog von Java den Standard-Dialog von Windows zum Drucken nutzen kann. Mein Problem ist folgendes:

Ich habe einen Barcode der als Image in Java zur Verfügung steht. Wenn ich diesen nun mit einem PrinterJob drucken möchte geht der Java-Druck-Dialog auf und wenn ich nun mit "Drucken" bestätige, gibt mir der Druckertreiber eine Fehlermeldung aus, dass das Format nicht passt. Wenn ich jedoch als Drucker den XPS Drucker auswähle und das XPS dann mit dem Internet Explorer öffne und drucke funktioniert alles einwanfrei. Ich hoffe ihr könnt mir weiterhelfen anbei noch ein paar Screenshots um das Problem zu verdeutlichen.

Die Einstellungen hab ich bereits gecheckt und irgendwie kann man nichts einstellen, dass das Format angepasst wird.








Lieben Gruß

Hitrix


----------



## jgh (1. Feb 2011)

Hast du es schonmal mit der Klasse "Desktop" probiert?

```
import java.awt.Desktop;

Desktop d = Desktop.getDesktop();
		try {
			d.print(new File("D:\\wichtiges\\druck.txt"));
		} catch (IOException e) {
			e.printStackTrace();
		}
```


----------



## Hitrix (1. Feb 2011)

```
try {
        //Create the barcode bean
EAN13Bean bean = new EAN13Bean();

final int dpi = 150;

//Configure the barcode generator
bean.setModuleWidth(UnitConv.in2mm(2.0f / dpi)); //makes the narrow bar
                                                 //width exactly one pixel
bean.setBarHeight(10);
bean.doQuietZone(false);


//Open output file
File outputFile = new File("out.png");
OutputStream out;

            out = new FileOutputStream(outputFile);


    //Set up the canvas provider for monochrome PNG output
    BitmapCanvasProvider canvas = new BitmapCanvasProvider(out, "image/x-png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 90);


    // 200x 10

    //Generate the barcode
    bean.generateBarcode(canvas, "234567891231");

    
    //Signal end of generation
    canvas.finish();

    out.close();

    String ausdruck = "out.png";
    File ausdruckfile = new File(ausdruck);
        if(Desktop.isDesktopSupported()) {
            Desktop dt = Desktop.getDesktop();
            try {
                dt.print(ausdruckfile);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
       
} catch (IOException ex) {
                Logger.getLogger(BarcodeView.class.getName()).log(Level.SEVERE, null, ex);
            }
```

So sieht es bisher aus, jedoch geht der Widows Druck-Dialog nun auf aber er hat kein Bild in der Auswahlliste, woran happerts denn nun?! 

Vielen Dank für deinen Tipp, ich glaub ich bin auf dem richtigen Weg.


----------

