首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Web 程式呼叫 Windows 列印介面:Applet/ActiveX 之外的現代方案

     編輯:程式設計綜合問答

傳統方案的困境

早期 Web 開發常用 Java Applet 或 ActiveX 控制項呼叫本機列印服務,但現代瀏覽器已全面停用 NPAPI 外掛與 ActiveX,這兩條路徑已不可行。

現代替代架構

  1. 瀏覽器原生列印 (CSS Print Media):
    • 使用 @media print 樣式表控制列印版面。
    • 呼叫 window.print() 觸發系統列印對話框。
    • 優點:零安裝、跨平台;缺點:無法靜默列印、精細控制受限。
  2. 本地服務 + WebSocket/HTTP 長輪詢:
    • 開發輕量級本地代理程式 (C#、Node.js、Go、Python 等) 監聽特定埠口。
    • 網頁透過 WebSocket 或 AJAX 與本地服務通訊,傳送列印指令與資料 (PDF/圖片/原始指令)。
    • 本地服務調用系統列印 API (System.Drawing.Printing, lpr, lp 等) 實現靜默/精細列印。
    • 典型應用:POS 系統、醫療資訊系統、倉儲標籤列印。
  3. 瀏覽器擴充套件 (Extension):
    • 開發 Chrome Extension / Firefox Add-on,使用 nativeMessaging 與本地主機應用程式通訊。
    • 權限較高,安裝門檻較高,適合企業內部管控環境。
  4. WebUSB / WebHID (實驗性):
    • 直接從網頁存取 USB/HID 列印裝置,需裝置支援且用戶授權,目前普及度低。

推薦選型

  • 一般報表、清單:CSS Print + window.print() 最省力。
  • 需靜默列印、控制紙張/份數/標籤機:本地代理服務 + WebSocket 是業界標準做法。
  • 嚴格管控環境:瀏覽器擴充套件 + Native Messaging。

不再糾結於已淘汰的 Applet/ActiveX,擁抱「本地服務 + Web 前端」的現代架構才是長久之計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved