Java - drucken auf Netzwerkdrucker
Hi NG,
wie kann ich Drucke auf einem Netzwerkdrucker ausgeben?
Im Netz habe ich leider nichts gefunden.
Ein Paar Zeilen Code wären hilfreich.
Gruß
Andy
wie kann ich Drucke auf einem Netzwerkdrucker ausgeben?
Im Netz habe ich leider nichts gefunden.
Ein Paar Zeilen Code wären hilfreich.
Gruß
Andy
Please also mark the comments that contributed to the solution of the article
Content-Key: 247676
Url: https://administrator.de/contentid/247676
Printed on: April 20, 2024 at 04:04 o'clock
7 Comments
Latest comment
Inwiefern sollte sich ein Netzwerkdrucker zu einem Lokal installierten Drucker unterscheiden?
Wenn du einen Netzwerkdrucker über Java installieren willst dann ist das was anderes, den Drucken ohne das der Drucker installiert ist kann Windows nicht, warum sollte es also Java können?
Ich weiß nicht ob ich dich richtig verstanden habe, aber drucken geht z.B. so:
import javax.print.*;
import javax.print.attribute.*;
import java.io.*;
import javax.print.event.PrintJobListener;
import javax.print.event.PrintJobEvent;
import java.awt.GraphicsEnvironment;
private MyDruckListener drucker = new MyDruckListener();
public PrintDocument(String strFilename, int iDevice)
{
try
{
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//setzt das auszudruckend Dokument fest
DocFlavor flavor = DocFlavor.INPUT_STREAM.XXX; //hier nachsehen, welches man benötigt!
PrintService printService = PrintServiceLookup.lookupPrintServices(
flavor, pras);
PrintService defaultService = PrintServiceLookup.
lookupDefaultPrintService();
PrintService service = null;
//wenn als Device -1 übergeben wird, wird ein Dialog für das drucken auswählen ausgegeben!
if (iDevice == -1)
{
service = ServiceUI.printDialog(GraphicsEnvironment.
getLocalGraphicsEnvironment().
getDefaultScreenDevice().
getDefaultConfiguration(), 200, 200,
printService, defaultService, flavor, pras);
}
//ansonsten wird der 1te (Standard/Default) Drucker genommen
else
{
//wenn es keine Drucker gibt und das Device niedriger ist als die Länge
if (printService != null && printService.length != 0 && printService.length > iDevice)
{
service = printService[iDevice];
}
//ansonsten standarddevice
else if(printService != null && printService.length != 0)
{
service = printService;
}
}
//wenn der Dateiename null ist, wird die Druckfunktion beendet!
if(strFilename == null)
{
return;
}
//wenn der Service nicht null ist, wird ausgedruckt
if (service != null)
{
DocPrintJob job = service.createPrintJob();
//fügt listener hinzu
job.addPrintJobListener(drucker);
FileInputStream fis = new FileInputStream(strFilename);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
}
}
//wenn kein Druckerdevice gefunden wurde!!
catch (ArrayIndexOutOfBoundsException ex)
{
ex.printStackTrace();
System.out.println("Keine Drucker gefunden!!");
}
//bei sonstigen Exceptions!
catch (Exception ex)
{
ex.printStackTrace();
}
}
private class MyDruckListener implements PrintJobListener
{
public void printDataTransferCompleted(PrintJobEvent printJobEvent)
{
System.out.println("Daten wurden zum Drucker geschickt!");
}
public void printJobCompleted(PrintJobEvent printJobEvent)
{
System.out.println("Drucker hat fertig gedruckt!");
}
public void printJobFailed(PrintJobEvent printJobEvent)
{
System.out.println("Fehler beim Drucken!");
}
public void printJobCanceled(PrintJobEvent printJobEvent)
{
System.out.println("Abbruch des druckes!");
}
public void printJobNoMoreEvents(PrintJobEvent printJobEvent)
{
System.out.println("JobNoMoreEvents!");
}
public void printJobRequiresAttention(PrintJobEvent printJobEvent)
{
System.out.println("JobRequieresAttention!");
}
}
Wenn du eine Datei ohne Druckerauswahl drucken möchtest dann brauchst du folgenden Code:
Hierbei wird der Standarddrucker verwendet.
Mit Druckerauswahl:
http://wiki.byte-welt.net/wiki/Drucken_von_Dokumenten_in_Java
Gruß
ITvortex
Desktop.getDesktop().print(new File("C://Users/xxx/Desktop/axyf.txt"));
Hierbei wird der Standarddrucker verwendet.
Mit Druckerauswahl:
http://wiki.byte-welt.net/wiki/Drucken_von_Dokumenten_in_Java
Gruß
ITvortex