распечатать файл в java

fis = new FileInputStream(file);
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; //  FILE IS .txt TYPE
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//pras.add(MediaSizeName.ISO_A4);
//pras.add(new Copies(1));

PrintService printService[] =PrintServiceLookup.lookupPrintServices(flavor, pras);
System.out.println("Print Service:"+printService);

PrintService defaultService =PrintServiceLookup.lookupDefaultPrintService();
System.out.println("Default Service:"+defaultService);
PrintService service = ServiceUI.printDialog(null, 200, 200,printService, defaultService, flavor, pras);

if (service != null) 
{
    System.out.println("Selected Service"+service);
    DocPrintJob job = service.createPrintJob();
    job.addPrintJobListener(new MyPrintJobListener());

    System.out.println("JOB:"+job);
    DocAttributeSet das = new HashDocAttributeSet();
    Doc doc = new SimpleDoc(fis, flavor, das);

    System.out.println("Start of Print");
    job.print(doc, pras);
    System.out.println("End of Print");
    i=1;
}
else
{
    i=0;
}

Я работаю над веб-приложением, в котором пользователь хочет распечатать данные, сохраненные в файле, который содержит данные из базы данных в соответствии с его запросом. Я помещаю приведенный выше код в метод, и когда он вызывается, он дает печать диалоговое окно для пользователя, в котором он может выбрать принтер из списка принтеров, подключенных к его машине. Если я пытаюсь распечатать на локальном принтере, файлы отправляются в папку C:\WINDOWS\system32\spool и отправляются на печать. но этого не происходит в случае сетевого принтера, мой принтер в сети - принтер серии Canon MP280. Я могу видеть его в списке принтеров, но не могу распечатать свой файл.


person Harsha    schedule 29.10.2013    source источник


Ответы (1)


принтер в сети общий или нет? если принтер общий и на вашем ПК/ноутбуке установлен. вы должны выбрать один из массивов списка имени службы печати

e.g

PrintService defaultPrintservice = printServices[0];

если принтер не установлен на вашем ПК/ноутбуке, вы должны указать путь к сетевому принтеру

e.g

new PrinterName("ipp:\\\\witnw21va\\ipp\\ITDepartment-HP4050", null);

надеюсь, это решит вашу проблему :) извините за мой английский: D

person user3562918    schedule 23.04.2014