Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Java - drucken auf Netzwerkdrucker

Frage Entwicklung Java

Mitglied: AndyAh

AndyAh (Level 2) - Jetzt verbinden

28.08.2014, aktualisiert 11:04 Uhr, 2715 Aufrufe, 7 Kommentare

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
Mitglied: ITvortex
28.08.2014 um 12:00 Uhr
Zitat von AndyAh:

wie kann ich Drucke auf einem Netzwerkdrucker ausgeben?


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:



01.
      
02.
    import javax.print.*; 
03.
    import javax.print.attribute.*; 
04.
    import java.io.*; 
05.
    import javax.print.event.PrintJobListener; 
06.
    import javax.print.event.PrintJobEvent; 
07.
    import java.awt.GraphicsEnvironment; 
08.
      
09.
      
10.
    private MyDruckListener drucker = new MyDruckListener(); 
11.
      
12.
    public PrintDocument(String strFilename, int iDevice) 
13.
14.
    try 
15.
16.
    PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); 
17.
    //setzt das auszudruckend Dokument fest 
18.
    DocFlavor flavor = DocFlavor.INPUT_STREAM.XXX; //hier nachsehen, welches man benötigt! 
19.
    PrintService printService[] = PrintServiceLookup.lookupPrintServices( 
20.
    flavor, pras); 
21.
    PrintService defaultService = PrintServiceLookup. 
22.
    lookupDefaultPrintService(); 
23.
      
24.
    PrintService service = null; 
25.
    //wenn als Device -1 übergeben wird, wird ein Dialog für das drucken auswählen ausgegeben! 
26.
    if (iDevice == -1) 
27.
28.
    service = ServiceUI.printDialog(GraphicsEnvironment. 
29.
    getLocalGraphicsEnvironment(). 
30.
    getDefaultScreenDevice(). 
31.
    getDefaultConfiguration(), 200, 200, 
32.
    printService, defaultService, flavor, pras); 
33.
34.
    //ansonsten wird der 1te (Standard/Default) Drucker genommen 
35.
    else 
36.
37.
    //wenn es keine Drucker gibt und das Device niedriger ist als die Länge 
38.
    if (printService != null && printService.length != 0 && printService.length > iDevice) 
39.
40.
    service = printService[iDevice]; 
41.
42.
    //ansonsten standarddevice 
43.
    else if(printService != null && printService.length != 0) 
44.
45.
    service = printService[0]; 
46.
47.
48.
    //wenn der Dateiename null ist, wird die Druckfunktion beendet! 
49.
    if(strFilename == null) 
50.
51.
    return; 
52.
53.
    //wenn der Service nicht null ist, wird ausgedruckt 
54.
    if (service != null) 
55.
56.
    DocPrintJob job = service.createPrintJob(); 
57.
    //fügt listener hinzu 
58.
    job.addPrintJobListener(drucker); 
59.
    FileInputStream fis = new FileInputStream(strFilename); 
60.
    DocAttributeSet das = new HashDocAttributeSet(); 
61.
    Doc doc = new SimpleDoc(fis, flavor, das); 
62.
    job.print(doc, pras); 
63.
64.
65.
    //wenn kein Druckerdevice gefunden wurde!! 
66.
    catch (ArrayIndexOutOfBoundsException ex) 
67.
68.
    ex.printStackTrace(); 
69.
    System.out.println("Keine Drucker gefunden!!"); 
70.
71.
    //bei sonstigen Exceptions! 
72.
    catch (Exception ex) 
73.
74.
    ex.printStackTrace(); 
75.
76.
77.
      
78.
    private class MyDruckListener implements PrintJobListener 
79.
80.
    public void printDataTransferCompleted(PrintJobEvent printJobEvent) 
81.
82.
    System.out.println("Daten wurden zum Drucker geschickt!"); 
83.
84.
      
85.
    public void printJobCompleted(PrintJobEvent printJobEvent) 
86.
87.
    System.out.println("Drucker hat fertig gedruckt!"); 
88.
89.
      
90.
    public void printJobFailed(PrintJobEvent printJobEvent) 
91.
92.
    System.out.println("Fehler beim Drucken!"); 
93.
94.
      
95.
    public void printJobCanceled(PrintJobEvent printJobEvent) 
96.
97.
    System.out.println("Abbruch des druckes!"); 
98.
99.
      
100.
    public void printJobNoMoreEvents(PrintJobEvent printJobEvent) 
101.
102.
    System.out.println("JobNoMoreEvents!"); 
103.
104.
      
105.
    public void printJobRequiresAttention(PrintJobEvent printJobEvent) 
106.
107.
    System.out.println("JobRequieresAttention!"); 
108.
109.
    }
Bitte warten ..
Mitglied: AndyAh
28.08.2014 um 12:11 Uhr
Hi,

eigentlich wollte ich nur einfachen Text drucken. Der Drucker ist natürlich in Windows und Linux eingebunden.

Gruß
Andy
Bitte warten ..
Mitglied: ITvortex
28.08.2014 um 12:19 Uhr
Hier eine Anleitung: http://www.torsten-horn.de/techdocs/java-print.htm


Gruß
ITvortex
Bitte warten ..
Mitglied: AndyAh
28.08.2014 um 14:10 Uhr
Hi,

ich habe im WikiBook für Java zwar ein Beispiel gefunden:

01.
import java.awt.Toolkit; 
02.
 
03.
 class PrinterInfo2 
04.
05.
   public static void main( String args[] ) 
06.
07.
     Toolkit tk = Toolkit.getDefaultToolkit(); 
08.
     PrintJob pj = tk.getPrintJob( new Frame(), "", null );  //dummy-Frame erzeugen 
09.
     if ( pj != null ) 
10.
     {  // FileOutputStream in PrintWriter packen 
11.
       PrintWriter pw = new PrintWriter( new FileOutputStream( "PRN:" )); 
12.
       pw.println( "Hallo lieber Drucker" ); 
13.
       pw.println( "... und das ist Zeile2 ..." ); 
14.
       pw.close();  // resource freigeben 
15.
16.
17.
 }


das aber so nicht funktioniert. Ich nehme an, das sich der Drucker am PRN: stört. Wie muss ich das Beispiel umschreiben, dass es funktioniert?

Gruß
Andy
Bitte warten ..
Mitglied: ITvortex
28.08.2014 um 15:38 Uhr
Wenn du eine Datei ohne Druckerauswahl drucken möchtest dann brauchst du folgenden Code:

01.
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
Bitte warten ..
Mitglied: AndyAh
29.08.2014 um 11:01 Uhr
Hi,

der obere Tipp funktioniert. Aber den Tipp aus dem Link bekomme ich leider nicht zum Laufen.

Gruß
Andy
Bitte warten ..
Mitglied: ITvortex
29.08.2014 um 11:19 Uhr
Was genau darf ich unter nicht zum Laufen verstehen?

Bite etwas ausführlicher erklären: Programmcode und Fehlermeldungen.

Gruß
ITvortex
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Drucker und Scanner
gelöst Netzwerkdrucker über WLAN erreichen und davon drucken (7)

Frage von o0Asia0o zum Thema Drucker und Scanner ...

Drucker und Scanner
gelöst PCL-Drucker drucken nur Hieroglyphen (5)

Frage von diwaffm zum Thema Drucker und Scanner ...

Windows Server
Drucken via RDP, Papier kommt aus falschem Schacht

Frage von torcolato zum Thema Windows Server ...

Windows Server
Jnlp Endungen mit Java automatisch verknüpfen über GPO (10)

Frage von staybb zum Thema Windows Server ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...