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.
0
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