Файл открывается перед печатью? - PullRequest
0 голосов
/ 11 мая 2011

Привет, я использую эту программу для печати моих файлов, но она открывает файл перед печатью? Я хочу удалить это. Любые предложения?

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

public class PrintFile {    

  public static void fileToPrint(File fis) {
    try {
      Desktop desktop = null;
      if (Desktop.isDesktopSupported())
      {

        desktop = Desktop.getDesktop();  

      }   
       desktop.print(fis);  
       System.out.print("Printing Document");
    }
    catch (IOException ioe)
    {
      ioe.printStackTrace();
    }

  }
}

1 Ответ

1 голос
/ 11 мая 2011

Desktop API в AWT использует встроенную функциональность системы (в данном случае Windows.) JVM, вероятно, вызывает ShellExecute / ShellExecuteEx для файла с помощью команды «print».Windows обрабатывает эту команду, выполняя поиск в реестре команды печати типа файла и выполняя ее.Для большинства типов файлов это приведет к открытию приложения, которое будет обрабатывать его, а затем автоматически выполнять команду печати. ​​

Короче говоря, я не думаю, что вы сможете использовать Desktop API, не имеяприложения открываются.Вам нужно было бы сделать всю печать самостоятельно (что, конечно, очень сложно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...