我要求根据用户的选择,通过Web浏览器将文档直接打印到多台打印机 . 用户将在我们的服务上设置不同的打印机,并将选择使用哪种打印机 .

dropship.amazon.in(亚马逊的仓库管理系统)使用此功能 . 他们称之为PackStations

以下是使用packstation的步骤:

  • 首先,我们需要为不同的类别保存打印机名称或地址,如标签打印,条形码打印 .

  • 单击指定类别前面的start将下载包含以下源的jnlp文件 .

<?xml version='1.0' encoding='UTF-8'?>

<jnlp spec='1.0+' codebase= 'https://dropship.amazon.in:443/DropShipCentral/PrintServer/'>
<information>
    <title>VendorFlex Print Server</title>
    <vendor>Amazon.com</vendor>
    <description>VendorFlex Print Server</description>
    <description kind="short">VendorFlexPrintServer</description>
    <icon href="AmazonVFPrintServer.jpg" kind="splash"/>
</information>

<security>
    <all-permissions/>
</security>

<resources>
    <j2se version="1.6+"/>
    <jar href="vendorflex-printserver.jar" main="true"/>
    <jar href="apache-httpcomponents-httpclient.jar"/>
    <jar href="apache-httpcomponents-httpcore.jar"/>
    <jar href="jakartacommons-codec.jar"/>
    <jar href="jakartacommons-lang.jar"/>
    <jar href="jakartacommons-logging-adapters.jar"/>
    <jar href="jakartacommons-logging-api.jar"/>
    <jar href="apache-commons-io.jar"/>
    <jar href="json-org-java.jar"/>
    <jar href="vfprintservershared.jar"/>
</resources>

<application-desc main-class="amazon.internal.dropship.printserver.main.PSMain">
        <argument>QNAY</argument>
<argument>test</argument>
<argument>https://dropship.amazon.in:443</argument>

</application-desc>
  • 执行此文件将显示两个按钮,启动和停止 .

  • 启动后,如果我从网络浏览器打印条形码,它将在没有任何提示的情况下通过指定的打印机进行打印 .

现在我有疑虑

  • 浏览器如何与AWT应用程序通信?打印命令是否直接发送到AWT应用程序?

  • 来自浏览器的打印命令是否首先发送到亚马逊服务器,然后它命令AWT应用程序打印 . 如果是这种情况,服务器如何匹配Web浏览器的用户和AWT应用程序的用户是相同的 .

如果有任何文档可以让我对此有所了解,那将非常有用 .

谢谢