Тихая печать на клиентском принтере для ADF в больнице.
Я работаю над проектом ADF на стойке регистрации в больнице, здесь мне нужно создать визитки, для которых не требуется предварительный просмотр печати. Я хочу напечатать листы без диалогов печати, а также не хочу всплывающее окно. Я перепробовал много вещей, найденных в сети, но ничего не получилось. Попробовал this.print в отчете Jasper, попробовал то же самое через Java, но я получаю диалог. Я работаю над интранетом, поэтому аспект безопасности не обсуждается, и как мне сделать эту работу?
3 ответа
Ну, я нашел способ сделать это..
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
"var pp = this.getPrintParams();pp.interactive=pp.constants.interactionLevel.silent;pp.NumCopies=1; this.disclosed= true ;this.print({bUI: false,bSilent: false,bShrinkToFit: true,printParams:pp});");
Это добавляет javascript pdf к сгенерированному pdf. Как только pdf отображается на всплывающей странице, он выполняет тихую печать. Надеюсь, это поможет кому-то в будущем.
Я смог выполнить тихую печать, я использовал всплывающее окно для вызова сервлета, который генерировал требуемую квитанцию о посещении и отображал ее во всплывающем окне. Для тихой печати я использовал
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print({bUI: false,bSilent: false,bShrinkToFit: true,printParams:this.getPrintParams().constants.interactionLevel.silent});this.close();");
Мне пришлось внести пару изменений в IE, я добавил свой URL в опцию доверенного сайта в IE. Я включил js в acrobat, а также указал acrobat на доверенные сайты в IE. Это решило тихую печать, но я застрял с другой проблемой..
Я не могу закрыть окно, как только печать завершена.. Я попробовал это..
"var win = window.open('PrintPopUp.jsf','_blank',\"height=300,width=200,scrollbars=no," +
"status=no, resizable=no, screenx=0, screeny=0\");win.onclick=function(){setTimeout(function(){win.close();\n},9000);}
Но это не работает в IE 11.. какие-либо предложения?
Это скорее предложение, чем ответ, но я не могу писать комментарии, пока не наберу 50 баллов репутации (спасибо за теплый прием, Stackru!) - возможно, одно из них поможет:
1) Печать HTML-файла с использованием Java без показа пользователю диалогового окна печати