【发布时间】:2014-01-03 17:27:43
【问题描述】:
社区的第一个问题!
让我稍微解释一下这个问题。
我有一个用户界面,允许我创建一个 Excel 文件。我想在那个用户界面上添加一个“打印文档”按钮。此按钮应该允许用户打印该 excel 文档。所以我需要一种方法来调用该文件的 Windows 打印对话框,以便用户可以打印该文件。
我已阅读http://docs.oracle.com/javase/tutorial/2d/printing/printable.html,但我找不到告诉打印对话框要打印什么文件的方法。
提前致谢!
【问题讨论】:
-
我认为您要问的是特定于操作系统的事情。您希望您的应用程序触发 Excel 打开文件并打印它。所以你必须问自己:在 Windows 中有没有办法从命令行打印 Excel 文档?另一种选择是在应用程序中加载 Excel 文件,然后从那里打印。 API 有几个,我认为 POI 是一个,JExcelAPI 是另一个。
-
感谢您的投入。这个想法将打开打印对话框,而不打开文件。正如您所建议的,从命令行打印将是一个不错的选择。不幸的是,我找不到 .xls 文件的打印命令。
-
即使您在 Windows 中从资源管理器打印某些内容,它也会打开 Excel 应用程序,执行“打印”对话框,然后将其关闭。我认为你要么通过一些可以读取 Excel 的库打印自己,要么找到通过 CLI 调用它的方法,或者使用 JNI 调用一些本地 Windows API 来完成它。
-
我想没有办法在不打开它的情况下打印文档。感谢您的建议!
-
归结为“打印对话框”实际上并不打印任何内容,它是一个用于配置打印位置和方式的对话框。应用程序仍然负责进行实际“打印”所需的任何调用。无论您使用哪种语言,它都以这种方式工作。Java 增加了一些额外的复杂性,因为它们必须以非常平台中立的方式做事。最好的办法是查看库以允许您打开 Excel 文件并打印它。 @Nik 下面发布了一些关于如何读取文件的代码,您只需将其发送到打印机。