Application Java pour imprimer sur une imprimante réseau


Je travaille sur un exemple d'application pour imprimer un fichier sur une imprimante réseau. Mais je m impossible d'obtenir le succès. Les gars s " il vous plaît aidez-moi à se débarrasser de ce problème.



FileInputStream fis = new FileInputStream(file);
if (fis == null) {
System.out.print("No File");
return;
}
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

PrintService service = PrintServiceLookup.lookupDefaultPrintService();

aset.add(new PrinterName("ipp:\\witnw21va\ipp\ITDepartment-HP4050", null));
//PrintServiceAttributeSet aset = HashPrintAttributeSet();
PrintService[] pservices = PrintServiceLookup.lookupPrintServices(flavor, aset);

if (service != null){
System.out.println("Default Printer: " + service.getName());

// Creating DocPrintJob
DocPrintJob job = service.createPrintJob();
try{
Doc doc = new SimpleDoc(fis,flavor,null);

PrintJobWatcher pjDone = new PrintJobWatcher(job);

job.print(doc,aset);

// Wait for the print job to be done
pjDone.waitForDone();

fis.close();
}

Merci beaucoup.

Author: user1127643, 2012-02-01

1 answers

Ce code ne sera pas compilé, car vous avez des séquences d'échappement invalides {[7] } dans le nom de l'imprimante:

new PrinterName("ipp:\\witnw21va\ipp\ITDepartment-HP4050", null)

Le compilateur Java pense que vous essayez d'écrire des caractères spéciaux comme newline \n, et est confus par \w, \i etc dans cette chaîne, qui ne sont pas légaux.

Vous devez échapper à chaque barre oblique inverse pour le rendre légal:

new PrinterName("ipp:\\\\witnw21va\\ipp\\ITDepartment-HP4050", null)

Ou changez-le s'il s'agit en fait de barres obliques

 1
Author: DNA, 2012-02-01 17:03:48