2

javax.print を使用して LAN に接続されたプリンターに PDF/DOC/ODT ファイルを送信しようとしていますが、ジョブが印刷キューに送信されません。ファイルを「通常どおり」 (Adobe Reader /Open Office を使用して) 印刷しようとしましたが、問題なく動作するため、プリンターは適切に接続されています。また、コードから仮想プリンター (PDFCreator) に送信しようとしましたが、うまくいきました。

私が使用しているコードは次のとおりです。

public Boolean Imprimir (String filePath){
    Boolean correct = true;

    FileInputStream psStream = null;  
    try {  
        psStream = new FileInputStream(filePath);  
    } catch (FileNotFoundException ex) {  
        ex.printStackTrace();
        correct = false;
    }
    if (psStream != null) {  

        DocFlavor psInFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;  
        Doc myDoc = new SimpleDoc(psStream, psInFormat, null);    
        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();            
        PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset);

        PrintService myPrinter = null;  
        for (int i = 0; i < services.length; i++){  
            String svcName = services[i].toString();             

            if (svcName.contains("Xerox")){  
                myPrinter = services[i];                       
                break;  
            }  
        }

        if (myPrinter != null) {              
            DocPrintJob job = myPrinter.createPrintJob();
            try{                    
                job.print(myDoc, aset);  
            }
            catch(PrintException ex){
                ex.printStackTrace();
                correct = false;
            }
        } else {  
            System.out.println("No printer services found");  
            correct = false;
        }
    }
    else{
        correct = false;
    }

    return correct;
}

プリンターは LPR プロトコルを使用して接続されます。

前もって感謝します

編集:他の投稿で提案されているように、jLprも使用してみました(JavaはPostscriptネットワークプリンターに直接印刷します)。どちらも機能しませんでしたが、エラーメッセージは表示されず、ジョブはプリンターのキューに表示されません。

4

1 に答える 1

-2

Adobe Reader のどのバージョンを使用していますか? バージョンによっては、Adobe Reader のセキュリティ上の問題である可能性があります。

よろしく

于 2013-08-08T14:55:36.127 に答える