Тихая печать на клиентском принтере для 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 без показа пользователю диалогового окна печати

2) Как бы я подавил диалог печати в этом примере?

Другие вопросы по тегам