クライアント マシンでプリンターのリストを検索し、Doc を印刷するための微粒子プリンターを設定するコードを書いています。しかし、私はネットでゴグリングしていて、次のように考えるコードを見つけました:
package org.ui;
import java.io.FileInputStream;
import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
public class Printing {
public static void main (String [] args) {
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet ();
PrintService [] pservices = PrintServiceLookup.lookupPrintServices (flavor, aset);
try {
int printer = getPrinter(pservices);
if(printer == -1) {
throw new Exception("No network printer found");
}
DocPrintJob pj = pservices[0].createPrintJob();
FileInputStream fis = new FileInputStream ("c:///file.txt");
Doc doc = new SimpleDoc (fis, flavor, null);
pj.print (doc, aset);
}
catch (Exception ex) {
ex.printStackTrace ();
}
}
private static int getPrinter(PrintService[] pservices) {
int printer = -1;
for(int i = 0; i<pservices.length; i++) {
if(pservices[i].getName().contains("\\\\")) {
System.out.println("network printer: " + pservices[i].toString());
printer = i;
break;
}
}
return printer;
}
}
しかし、私は紙に印刷することができません.誰かがこのコードの問題を教えてもらえますか? そのデスクトップ アプリケーションです。