【发布时间】:2010-03-23 23:09:02
【问题描述】:
在 java web 应用程序中需要从服务器中选择文件并打印到本地打印机。如何做到这一点
提前致谢
【问题讨论】:
标签: java servlets jakarta-ee
在 java web 应用程序中需要从服务器中选择文件并打印到本地打印机。如何做到这一点
提前致谢
【问题讨论】:
标签: java servlets jakarta-ee
只要您需要最少的用户交互(即只需单击链接,然后执行打印魔术),这就会很棘手,而且它还取决于相关文件的类型。例如,如果它是一个.doc 文件,那么您基本上需要将其下载到客户端环境并在默认关联的应用程序(本例中为 MS Word)中打开它,然后让应用程序执行打印命令。您不能从服务器端执行此操作。
最好的办法是创建一个Applet,它依次显示文件树,在客户端交互时将文件下载到本地磁盘文件系统,并利用Desktop#print() 打印它。例如
File file = new File("/temp/file.doc");
// Read file from server using URLConnection, write it to this file and then do:
Desktop.print(file);
但是,如果是普通的text 文件,例如text/html、text/xml 等,那么您可以使用Javascript 将文件加载到一些<div> 或<iframe> 元素中,然后执行window.print() 方法就可以了,如有必要,还可以加上 CSS media rule。
【讨论】:
您将需要一个 applet、flash、silverlight、javafx - 即嵌入式应用程序。那里:
URL.openConnection())从服务器下载文件,获取返回的字节并形成内存中的文档(不知道javascript是否也不能实现同样的流程)
【讨论】: