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, 2907 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 ..
Ähnliche Inhalte
Windows Server
gelöst Netzwerkdrucker offline (4)

Frage von Robi01010101 zum Thema Windows Server ...

Webbrowser
Firefox 52 und Java (Workaround) (12)

Tipp von ChriBo zum Thema Webbrowser ...

Java
Java deployment.properties und Systemvariablen (3)

Frage von 1x1speed zum Thema Java ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...