-1

次のコードは、Windows で実行されている場合は正常に動作しますが、これがサーバーにデプロイされ、Windows システムを介してアクセスする場合、実行時例外 " No printer services available. " がスローされます。このコードに何か問題がありますか、または代替案を提案できますか

 package com.rajsoft.CAF.APController;

 import java.io.FileInputStream;

 import javax.print.Doc;
 import javax.print.DocFlavor;
 import javax.print.DocPrintJob;
 import javax.print.PrintService;
 import javax.print.PrintServiceLookup;
 import javax.print.SimpleDoc;
 import javax.print.attribute.HashPrintRequestAttributeSet;
 import javax.print.attribute.PrintRequestAttributeSet;
 import javax.print.attribute.standard.Copies;

 public class SamplePrint {
   static public void main(String args[]) throws Exception {
     PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
     pras.add(new Copies(1));
     PrintService pss[] =     PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
if (pss.length == 0)
  throw new RuntimeException("No printer services available.");
PrintService ps = pss[0];
System.out.println("Printing to " + ps);
DocPrintJob job = ps.createPrintJob();
//FileInputStream fin = new FileInputStream("C:/SignImage.GIF");
 FileInputStream fin = new FileInputStream("C:/SignImages/Hyderabad.GIF");
Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null);
job.print(doc, pras);
fin.close();
   }
 }
4

1 に答える 1

1

あなたが求めている味だと思います。フレーバーで null を使用するか、単に「lookupDefaultPrintService()」を呼び出して、コードを呼び出している環境に対してデフォルト サービスが返されるかどうかを確認できますか。

于 2012-11-23T07:33:46.383 に答える