首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Unix 打印服務器進階配置:lpadmin 統一處理文本、PostScript、PCL/RTL 多格式輸出

     編輯:Java 程式設計入門

場景與挑戰

  • 環境:Sun Ultra Enterprise 450 + Zeh ZPS 繪圖軟件 + 200+ 客戶端 + 50+ 打印設備 (HP 繪圖儀/噴墨/激光)
  • 格式:純文本、PostScript、PCL、RTL (可打印二進制)
  • 痛點:分散直打 → 無法審計、大文件 (GIF/JPEG) 浪費紙張、無標題頁、腳本掃描慢

解決方案:中心化打印服務器 + lpadmin 智能過濾

所有打印請求汇聚到單一服務器,由 lpadmin 配置的過濾鏈 自動識別格式、轉換、路由到目標設備。

lpadmin 核心配置參數

多格式智能過濾腳本邏輯 (netstandard 改造版)


#!/bin/sh
# 標準輸入為打印數據,參數含:用戶、標題、份數、選項...
# 1. 識別格式 (file 命令 / 魔數 / 頭部標記)
# 2. 根據目標打印機能力決定是否轉換
# 3. 調用相應轉換器:
#    文本 → a2ps/enscript → PostScript
#    PostScript → 直通 (目標支援 PS) 或 pstops/pstoraster
#    PCL/RTL → 直通 (目標支援 PCL) 或 ghostpcl
#    圖片 (GIF/JPEG) → 拒絕或轉為 PS (配置策略)
# 4. 通過 lpr -P 目標打印機 輸出
# 5. 記錄日誌:用戶、文件、格式、頁數、耗時

關鍵避坑經驗

  1. 文本樓梯效應:Unix 文本 LF 直接發送到 PS 打印機 → 階梯狀。修正:過濾器必須將文本轉 PS (添加換頁、字體指令)
  2. 二進制垃圾文件:用戶誤打圖片 → 浪費紙墨。策略:過濾器識別非打印格式 → 拒絕並郵件通知用戶
  3. 標題頁爭議:用戶嫌浪費紙,但無標題頁無法審計。折中:電子日誌記錄完整元數據,物理標題頁可選
  4. 腳本效能:Shell 腳本處理大文件慢。優化:C 寫過濾器、管道流式處理、避免落地臨時文件

驗證測試矩陣

選項含義本案例值
-p打印機名稱no1316p
-s服務器!打印機nolsn099!no1316p
-o protocol=bsdBSD 協議 (LPD)是
-o dest=目標設備名no1316p
-T內容類型PS (PostScript)
-I接受的內容類型PostScript
-v設備文件/dev/null (網絡打印)
-i介面腳本 (過濾器)/usr/lib/lp/model/netstandard

lpadmin + 智能過濾器 = 企業級打印治理中樞。統一入口、格式自適應、審計可追溯、資源可控,這才是成熟 Unix 打印架構的樣子。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
輸入格式目標打印機預期結果
純文本PS 打印機正常打印,無樓梯效應
PostScriptPS 打印機直通打印
PCLPCL 打印機直通打印
大圖片 (GIF/JPEG)任意拒絕,用戶收到通知