Drucker druckt nicht (Postscript direkt an Drucker)

Status
Nicht offen für weitere Antworten.

Snape

Bekanntes Mitglied
Moin,
wenn ich diesen Code ausführe, um eine Postscript-Datei direkt auszudrucken, wird alles schön durchlaufen. In den services ist auch der (Netzwerk-)Drucker eingetragen, aber die Datei wird nicht ausgedruckt. Beim job.print(...) fliegt diese Exception:

sun.print.PrintJobFlavorException: invalid flavor
at sun.print.Win32PrintJob.print(Unknown Source)
at de.loher.print.PrintPostScript.main(PrintPostScript.java:59)

Aber was soll am Flavor falsch sein? Es macht auch keinen Unterschied, ob aset.add( MediaSizeName.ISO_A4 ); auskommentiert ist oder nicht.

Code:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;

/**
 * @author Administrator TODO To change the template for this generated type
 *         comment go to Window - Preferences - Java - Code Style - Code
 *         Templates
 */
public class PrintPostScript
{

  public static void main( String[] args )
  {
    FileInputStream fileInputStream = null;
    try
    {
      fileInputStream = new FileInputStream("meine.ps");
    }
    catch (FileNotFoundException exception)
    {
      System.exit(0);
    }
    if( fileInputStream == null )
    {
      return;
    }

    DocFlavor psFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT;
    Doc myDoc = new SimpleDoc( fileInputStream, psFormat, null );
    PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
//    aset.add( MediaSizeName.ISO_A4 );
    aset.add( new Copies( 1 ) );
    aset.add( Sides.ONE_SIDED );

    PrintService services = PrintServiceLookup.lookupDefaultPrintService();

    if( services != null )
    {
      DocPrintJob job = services.createPrintJob();
      try
      {
        job.print( myDoc, aset );
      }
      catch (PrintException pe)
      {
        pe.printStackTrace();
      }
    }
  }
}
 
Java und drucken sind net gerade Freunde 🙂


Java sagt std mäßig das fast kein Drucker PS oder PDF Dateien drucken kann...

Bei uns in der Fa. der A3 Drucker wird aber als PS Drucker ausgewiesen ( ...)

Aber der Laserjet net....
 
Also der Drucker (Ricoh Aficio) wird ja angezeigt nach

PrintService services = PrintServiceLookup.lookupDefaultPrintService();

Deshalb verstehe ich das nicht. Gibt es keinen Workaround - auch wenn er noch so dreckig ist? 😉
 
Naja, er wird angezeigt mit lookupDefaultPrintService!

Schau dir mein Bsp in den FAQs an, da versuche ich den Drucker gleich mit dem DocFlavor deiner gewünschten Art zu holen


Wirst ne Exception bekommen 😉
 
Klar bekomme ich die. Aber wie kann man das Problem lösen? Oder gibt es dazu keine Lösung?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben