【问题标题】:In java web application how to print server file from client side在Java Web应用程序中如何从客户端打印服务器文件
【发布时间】:2010-03-23 23:09:02
【问题描述】:

在 java web 应用程序中需要从服务器中选择文件并打印到本地打印机。如何做到这一点

提前致谢

【问题讨论】:

    标签: java servlets jakarta-ee


    【解决方案1】:

    只要您需要最少的用户交互(即只需单击链接,然后执行打印魔术),这就会很棘手,而且它还取决于相关文件的类型。例如,如果它是一个.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/htmltext/xml 等,那么您可以使用Javascript 将文件加载到一些<div><iframe> 元素中,然后执行window.print() 方法就可以了,如有必要,还可以加上 CSS media rule

    【讨论】:

      【解决方案2】:

      您将需要一个 appletflashsilverlightjavafx - 即嵌入式应用程序。那里:

      • 通过创建 GET 请求(在小程序中 - 使用 URL.openConnection())从服务器下载文件,获取返回的字节并形成内存中的文档
      • 将其发送到打印机。如果您选择小程序 - this might help

      (不知道javascript是否也不能实现同样的流程)

      【讨论】:

        猜你喜欢
        • 2015-05-14
        • 2010-09-17
        • 2023-03-14
        • 1970-01-01
        • 2011-05-30
        • 1970-01-01
        • 2011-06-10
        • 1970-01-01
        相关资源
        最近更新 更多