Как открыть диалоговое окно печати после создания PDF? - PullRequest
3 голосов
/ 05 января 2012

Я написал несколько действий, которые динамически генерируют PDF-файлы. что-то вроде: reports / reportGenerator.action

когда я звоню reports/reportGenerator?param=dialy, он откроет сгенерированный pdf во всплывающем окне, а затем я могу нажать кнопку печати, чтобы открыть диалоговое окно принтера и распечатать его.

Теперь я хочу открыть диалоговое окно принтера напрямую. поэтому, когда я вызываю reports/reportGenerator?param=dialy и после того, как файл PDF полностью сформирован , откройте диалоговое окно принтера. это возможно? (Я знаю, что диалоговое окно принтера не может быть пропущено)

больше информации: действие примерно так:

sout = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\"myReport.pdf\"");
sout.write(pdfBytes);
sout.flush();
sout.close();

Ответы [ 2 ]

7 голосов
/ 09 января 2012

Благодаря Alex KI нашел ответ:

в соответствии с JRPdfExporterParameter.html # PDF_JAVASCRIPT

Вы можете использовать свойство PDF_JAVASCRIPT для добавления JavaScript в PDF, когдаВы генерируете его.

, поэтому я добавил

JRPdfExporter exporter = new  JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print();");

при экспорте PDF, и это сработало

2 голосов
/ 14 февраля 2017

Решение простое, добавьте свойство в файл jrxml, щелкнув правой кнопкой мыши на jrxml в конструкторе iReport и нажмите Свойства, затем нажмите добавить:

Имя свойства

net.sf.jasperreports.export.pdf.javascript

Значение свойства

this.print({bUI: true,bSilent: true,bShrinkToFit: false});

Это свойство будет автоматически печататься на стороне клиента, я бы добавил его, и оно отлично работает.

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