Linux-Networking

通過網路擷取列印作業的最可靠方法是什麼?

  • March 23, 2019

我在一個小鎮的零售店工作。我們為工人和卡車司機提供收費賬戶,讓他們得到他們想要的東西,簽署文件,然後重新開始工作。這不是一個真正的問題,但我的老闆希望在櫃檯設置簽名板,這樣他們只需簽名一次,而不是每次旅行簽名 4-6 次。我思考並閱讀了它,我認為這不會太難,所以我說服我的老闆讓我嘗試執行一個。我過去曾使用過 C# 和 AutoHotKey,但幾乎沒有任何網路經驗。

我的大部分程序現在都在執行,但它真的很稀疏而且效率不高,因為我使用了一種非常不可靠的方式來獲取簽名。我在辦公室有一台執行 linux 的電腦,它連接到交換機。在同一個交換機上,我有一台舊列印機,該交換機正在鏡像數據包並將它們發送到 linux 電腦。Linux 上的 Tcpflow 設置為 24/7 自動啟動和執行,擷取這些數據包並將它們保存在網路上的共享文件夾中。保存的數據封包件可以很容易地用 Ghostscript 從 Postscript 轉換為 PDF 格式以進行簽名。

我遇到的最大問題是鏡像這台列印機真的不可靠。如果列印機碰巧在辦公室用完紙而沒有人回到那裡,它會堆積列印作業並且不再接受 TCP 數據包,因此交換機無法以某種方式鏡像它們並且它會破壞整個過程。

有時,從 linux 到 windows 的網路共享會在 linux 中解除安裝,但這並不是我在這個問題中真正要尋找的。

我想知道是否有某種方法可以通過網路模擬列印機,並帶有物理 IP 地址,我可以使用我們的商店伺服器進行列印。我不能隻共享虛擬列印機或任何東西,因為我們的商店伺服器正在 SunOS 上執行一些專有軟體。在此軟體上設置列印機的唯一方法是使用列印機的 IP 地址。

如果需要任何進一步的資訊,我將非常樂意回答,我會全天有空,所以除非出現問題,否則不會花太長時間回复。謝謝你們。

在 Linux 機器上設置 Samba,設置一個共享“列印機”,該“列印機”呼叫腳本以另存為 PDF 並執行任何操作,甚至最終列印一份硬拷貝。

Samba 配置片段可能看起來像

[PDFprinter]
       comment = Samba Virtual PDF Printer
       printing = LPRNG
       path = /var/spool/samba
       printable = Yes
       lpq command =
       lprm command =
       print command = /usr/local/bin/print2pdf /var/spool/samba/%s /home/%U

還有一個簡單的 PDF 列印機,可以將輸出放在使用者的$HOME- 你可以改變它來做各種各樣的事情,你可以使用任何可以從標準輸入獲取輸入/參數的腳本語言 -%s是 PS 數據的列印流,%U是列印到共享的使用者。

#!/bin/bash

bn=`date +%s`
ps2pdf "$1" "$2"/print_$bn.pdf

exit 0

使用任何 PostScript 列印機驅動程序安裝列印機 - 我喜歡 HP color laserjet 驅動程序,選擇足夠舊的型號,驅動程序將內置到您使用它的任何作業系統中(我特別使用 Color LaserJet 5/5m 或 2500 系列, Apple Color LaserWriter 在 XP 時代很不錯…)

我對 PHP 腳本使用了類似的設置列印,它將 PDF 作為 blob 儲存在 db 中,向使用者發送一封電子郵件,其中包含指向網路表單的連結以收集封面資訊,發送和接收傳真hylafax並儲存傳入數據庫中的傳真。在 Pentium 200 w 32mb ram 上執行,每年為 30 人的保險代理機構發送和接收 75k 份傳真。

如果 IP 和共享名稱不起作用,而您只需要一個純 IP,則安裝CUPS在 Linux 機器上並安裝它自己的共享列印機,然後通過重新共享CUPS- 我認為這將允許您做一個簡單的 IP或許還有埠號來指定要使用的列印機。

引用自:https://serverfault.com/questions/959621