【问题标题】:"Silent" printing for multiple printers多台打印机的“静音”打印
【发布时间】:2016-07-21 11:51:52
【问题描述】:

嗯,我有一个基于 Web 的应用程序(用 Elixir/Phoenix 框架编写)。这是餐厅的一种POS。

系统在 rpi 3 上运行,带有两台可访问的打印机。一个是本地USB,一个是网络打印机,通过WIFI路由器连接。当我需要打印一些东西时,两台打印机都设置了 CUPS 并且工作正常。

我使用的是 Chromium 浏览器,并且“--kiosk --kiosk-printing”开关。然而,这就是它变得棘手的地方。

因为我使用的是自助服务终端打印,所以在发送作业时,打印对话框(用于选择打印机)没有出现,并且默认为默认打印机。由于自动化,我需要使用静音打印。所以服务员不需要每次都选择打印机。

在网络应用程序中,我有某些 div 需要打印到一台打印机,而其他的需要打印到另一台打印机。我正在使用简单的 JS 进行打印,但是我不能纯粹用 JS/HTML 指定要使用哪个打印机,用于哪个作业。 (一台打印机打印账单,第二台打印机打印订单到厨房)

我需要将作业发送到不同的打印机。不知道如何制作,但任何建议表示赞赏。

提前致谢!

更新: 发现 Jsprintsetup 可能有帮助的 Firefox 插件。现在将测试。

更新 2: 根据@tkowal 的建议,我能够做我需要做的事情。我最终创建了单独的 tmp 文件(而不是发送 div)并将它们发送以进行打印。这是我的代码,如果您有兴趣(在 OSX 上测试):
 # Generating tmp for printing and sending jobs
      for item <- order_items do
        file_name = Enum.join([item.order_id, "-", item.id, ".txt"], "")
        file_create = Enum.join(["touch", file_name], " ") 
        file_create |> String.to_char_list |> :os.cmd
        file_inject = Enum.join(["echo", item.food.name, item.quantity, ">", file_name], " ")
        file_inject |> String.to_char_list |> :os.cmd

        # Send to print
        print_path = Enum.join(["~/Developer/elixir/myApp/", file_name], "")
        file_print = Enum.join(["lp", "-d", "HP_LaserJet_3050", print_path], " ")
        file_print |> String.to_char_list |> :os.cmd

        # Remove tmp file
        file_remove = Enum.join(["rm", file_name], " ")
        file_remove |> String.to_char_list |> :os.cmd
      end

【问题讨论】:

    标签: printing raspberry-pi elixir chromium phoenix-framework


    【解决方案1】:

    您可以使用System.cmd/3 与操作系统进行交互。最好想出一个命令行解决方案来打印您需要的任何内容,然后通过 Phoenix 应用程序中的控制器调用它。

    浏览器是沙盒,无法访问您操作系统中的所有内容,但您的服务器端代码应该能够执行几乎所有操作。

    【讨论】:

    • 嘿,这是一个有趣的想法!我不知道 System.cmd/3,现在将阅读
    • 嘿@tkowal,我已经接受了你的回答,因为我能够做我需要的事情。但是,我没有直接使用 System.cmd,而是先创建命令,通过 Enum.join 然后 |> String.to_char_list |> :os.cmd,因为它给了我更大的灵活性!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2017-03-12
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多