2017-03-09 14 views
0
for(int i = 0 ; i< letters.size(); i++){ 
    Map<String,Object> letter= letters.get(i); 
    String path  = letter.get("path").toString(); 
    File pritingFile = new File(path); 
    Desktop desktop = null; 
     if (Desktop.isDesktopSupported()) { 
        desktop = Desktop.getDesktop(); 
        desktop.print(pritingFile); 
     } 

    } 

forループは約200文字を印刷していますが、プリンタは印刷順に文字を印刷していません。 print(...)ため文書はJavaで順番に印刷されていません

+0

'デスクトップdesktop = null; if(Desktop.isDesktopSupported()){'これはNPEにつながります。 –

+0

@AntonBalaniuc静的メソッド呼び出しがNPEにつながるのはなぜですか? –

+0

@ M.Prokhorov、ああ、それは静的な方法です。この場合、「NPE」はありません。それがインスタンスメソッドであれば、NPE –

答えて

0

のjavadocは言う:

は、関連付けられたアプリケーションの印刷コマンドを使用して、ネイティブデスクトップの印刷機能でファイルを印刷します。

ファイルがネイティブ(つまりOS)印刷システムによって印刷される順序についての保証はありません。実際には、javadocは、printが戻るまでに書式設定されたドキュメントがプリンタキューに送信されたということさえも示していません。

あなたはjavax.printのAPIを使用して、より多くの成功を持っていることがあります。上記のページの例であり

関連する問題