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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 247676
Url: https://administrator.de/contentid/247676
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
7 Kommentare
Neuester Kommentar
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