【问题标题】:How to Print PDF file without print preview in javajava - 如何在没有打印预览的情况下打印PDF文件
【发布时间】:2013-09-12 14:37:20
【问题描述】:

我使用 JasperReports 成功生成了一个 PDF 文件;我的 PDF 文件的创建是通过按钮触发。生成文件后,我想在没有 PDF 预览的情况下在打印机中打印该 PDF 文件(打开 PDF 文件,然后单击打印按钮)。我的目标是当用户单击生成 PDF 的按钮时,它还将在该计算机的默认打印机中打印该 PDF。顺便说一句,我在这个项目中使用 Windows 和 Java JRE7。

【问题讨论】:

  • 我现在唯一能做的就是让用户 jasper 报告生成 pdf 文件,然后它将向用户显示 pdf,他现在可以单击该 pdf 上的打印按钮。但我的客户想要的是让 pdf 预览消失,并在打印机上打印 pdf 没有 pdf 预览

标签: java pdf printing dialog preview


【解决方案1】:

查看此博客http://blog.idrsolutions.com/2010/01/printing-pdf-files-from-java/;可能对你有帮助。

您也可以寻找 PDFRenderer Java API,可能会有所帮助。

编辑:如何设置打印属性 - 参考:http://docs.oracle.com/javase/7/docs/technotes/guides/jps/spec/attributes.fm4.html

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(5)); 
aset.add(MediaSize.ISO_A4); 
aset.add(Sides.DUPLEX); 

将此属性传递给 printJob.print(pdfDoc, new HashPrintRequestAttributeSet()) 此外,您可以先尝试获取支持的属性,然后再相应地使用。请阅读以上文档,示例非常丰富。

【讨论】:

  • 感谢您的帮助,我尝试了 JPedal 30 天试用。我可以打印 pdf 文件,但问题是打印时我似乎无法将纸张尺寸设置为“实际尺寸”
  • 嗨罗斯,也许您想为打印作业设置属性。我已经编辑了相同的帖子。同时,如果此答案对您有帮助,您可能需要投票并接受此答案。谢谢。
【解决方案2】:

我使用JPedal成功完成了任务,现在我可以使用代码将pdf文件以实际大小直接打印到打印机上

decodePdf.setPrintPageScalingMode(PrinterOptions.PAGE_SCALING_REDUCE_TO_PRINTER_MARGINS);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2020-04-04
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多