1

アプリケーションに html ドキュメントの print メソッドがあります。物理プリンターにアクセスできません。コンピューターを物理プリンターに接続しなかったため、コードで指定されているように「プリンターサービスが見つかりません」というメッセージが表示されました。物理的なプリンターを持たないプリンターにコンピューターを接続したときに、その機能が正しく動作することを確認できますか?

     FileInputStream psStream = null;  
        try {  
            psStream = new FileInputStream("c:\\some.html");  
            } catch (FileNotFoundException ffne) {  
              ffne.printStackTrace();  
            }  
            if (psStream == null) {  
                return;  
            }  
        DocFlavor htmlStreamFlavor = new DocFlavor("text/html; charset=utf-16", "java.io.InputStream");  
        Doc myDoc = new SimpleDoc(psStream, htmlStreamFlavor, null);    
        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();  
        PrintService[] services = PrintServiceLookup.lookupPrintServices(htmlStreamFlavor, aset);  

        // if several printers configured  
        PrintService myPrinter = null;  
        for (int i = 0; i < services.length; i++){ 
            String svcName = services[i].toString(); 
            System.out.println("service found: "+svcName);              
            if (svcName.contains("printer closest to me")){  
                myPrinter = services[i];  
                System.out.println("my printer found: "+svcName);  
                break;  
            }  
        }  

        if (myPrinter != null) {              
            DocPrintJob job = (DocPrintJob) myPrinter.createPrintJob();  
            try {  
            job.print(myDoc, aset);  

            } catch (Exception pe) {pe.printStackTrace();}  
        } else {  
            System.out.println("no printer services found");  
        }  
4

2 に答える 2

6

印刷する代わりに PDF を作成する論理プリンターがあります。アプリケーションの場合、それらは通常のプリンターのように見えます。

オプションについては、このかなり長いリストを参照してください: https://www.google.de/search?q=pdf+printer

于 2012-10-05T15:06:44.843 に答える
2

たとえば、仮想プリンターを使用できます。PDF Creatorは非常に簡単にインストールでき、実際のプリンターのようにプログラムから使用できます。

于 2012-10-05T15:11:46.127 に答える