Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

cups-web 是 MIT 開源的網頁列印管理工具(Go+Vue,GitHub 約 1,115 顆星,Docker 部署),把 USB 印表機接在 NAS、樹莓派或閒置小主機上,在區域網路跑一個網頁列印入口,手機、平板、Mac、Windows 只要打開瀏覽器上傳 PDF、照片、Word 甚至 OFD 就能列印,不必在每台設備裝驅動。它內建 LibreOffice 處理 Word、支援 HEIC 與 OFD 轉檔、多圖合併 PDF、列印前預覽與頁數估算,還有多使用者管理與列印記錄。底層仍依賴 CUPS 與印表機驅動,適合想把一台 USB 印表機分享給全家或小辦公室各種裝置、且有一台能長期開機設備的人。
用 AI 摘要這篇文章:
家裡那台還能用的 USB 印表機,常常因為只有接著它的那台電腦開機才印得了,最後只能閒著積灰,這是不少人熟悉的浪費。cups-web 是一套開源的網頁列印管理工具,專門解決這件事:它在區域網路裡跑一個網頁列印入口,印表機接在一台能長期開機的設備上(NAS、樹莓派或閒置小主機),其他裝置打開瀏覽器、上傳檔案就能印,不必在每台設備上各自裝驅動。專案在 GitHub 有一千一百多顆星,MIT 授權,用 Go 加 Vue 寫成,靠 Docker 部署。
TL;DR:cups-web(GitHub 約 1,115 顆星,MIT 開源,Go+Vue 3,2025 年 12 月開張、2026 年 6 月中仍活躍更新)是一套基於 CUPS 的網頁列印管理工具,把 USB 印表機變成區域網路裡的網頁列印入口。你用瀏覽器上傳 PDF、照片、Word 甚至 OFD 檔,它會在服務端完成格式轉換並送進列印佇列,其他裝置完全不必裝驅動。它內建 LibreOffice 處理 Word、支援 HEIC 與 OFD 轉檔、多圖合併成 PDF、列印前預覽與頁數估算,還有多使用者管理與列印記錄。它需要一台能長期開機的設(NAS、樹莓派、小主機)接住印表機並跑 Docker,底層仍依賴 CUPS 與印表機驅動。適合想把一台 USB 印表機分享給全家或小辦公室各種裝置的人。
目錄
把 USB 印表機分享給多台設備,傳統做法是設一台 Windows 或 Mac 開「印表機共享」,其他裝置透過網路發現它。問題是這招很挑環境:共享的那台電腦得一直開著、網路發現常常在 Mac 與 Windows 之間失靈、手機更是難搞,驅動版本對不上時整個就卡住。cups-web 換了個思路:把印表機的所有麻煩收進一台常駐機器,終端裝置只剩「打開瀏覽器」這一個動作。
這對手機、平板這類「不方便裝驅動」的裝置尤其有感。你在 LINE 或郵件收到一份〈EasyPDF 這類工具〉處理過的檔案、或〈Word 檔〉,直接用手機瀏覽器打開內網裡的 cups-web 網址,把檔案傳上去就送印,手機端一條龍完成、完全繞過電腦。它本質上是把一台老印表機,重新包裝成區域網路裡人人都能用的網頁列印站。把幾種讓 USB 印表機變「大家都能印」的方式擺在一起比較:

| 方式 | 手機能不能印 | 要裝驅動嗎 | 格式轉檔 | 適合場景 |
|---|---|---|---|---|
| cups-web | 能(瀏覽器) | 終端不用 | 內建 LibreOffice | 有閒置設備的家/辦公室 |
| 印表機共享 | 難 | 每台都要 | 無 | 同系統的少數電腦 |
| 雲端列印服務 | 能 | 視服務 | 視服務 | 願意走雲端的人 |
cups-web 真正省事的地方,是它把格式轉換做進了服務端。除了常規的 PDF 和圖片(含 iPhone 的 HEIC),它內建 LibreOffice 來解析 Word 檔案,甚至支援中國特有的 OFD 格式轉換;也就是說,不管你丟上去的是哪種檔,它都先在服務端轉成印表機看得懂的格式,再送進佇列。這層轉檔能力,是它比單純「網頁上傳按鈕」多出來的價值。
幾個貼心的列印功能也圍繞著手機臨時列印的場景設計:多張圖片能合併成一份 PDF 再印、列印前可以預覽、還會估算頁數,避免印出來才發現多印了十幾張。對臨時要列印照片、截圖、票據這類零碎需求,這些小功能比「能印」本身更實用,也減少了浪費紙張的狀況。

為什麼手機列印特別需要這層轉檔?因為手機上的檔案格式比電腦更雜:iPhone 拍的照片是 HEIC、辦公檔案是 Word、中國的政務與金融檔案常是 OFD,這些格式老印表機的驅動多半不認得。傳統做法是先在手機或電腦上手動轉成 PDF 再印,手續繁瑣;cups-web 把這一步搬進服務端,手機使用者只要丟原始檔上去,轉檔交給服務端的 LibreOffice 與轉換器處理,終端裝置完全不用管格式問題。對一個家裡有老印表機、又想讓長輩用手機隨手印的人,這層「丟什麼都能印」的包容度,是它最實際的價值。
在辦公室或共享空間,列印管理也是個需求。cups-web 支援多使用者管理,可以開帳號給不同人使用,並留下列印記錄讓你回頭查誰印了什麼、印了多少。這對需要控管列印量、或要分攤紙張成本的環境很實用,比那種任何人連上內網就能無限印的開放設定多了一層秩序。

舉個辦公室的實際用法:行政可以給每位員工開帳號、設定列印額度,月底看列印記錄就能知道誰印得最多、哪份檔案重複列印了好幾次,據此調整用量或分攤成本。對於那種「大家隨手印、月底紙張費嚇人」的小公司,這層帳號與記錄機制能把列印這件瑣事變得可追蹤、可控管。當然,這也意味著列印入口要設好登入,不能完全開放,這點在部署時要一併考量。
不過要提醒的是,這類列印入口最好只放在內網使用。把它直接暴露到公開網路上讓外部存取,等於讓任何人都能往你的印表機送任務,既有安全風險也可能被濫用印個沒完。把它當作「內網工具」、必要時加上閘道器或 VPN 限制存取來源,是比較穩當的用法。
尤其是印表機往往連著家用或辦公的內部網段,背後還可能接著其他設備,把列印服務連同整個網段一起暴露到公網,風險不止於「被亂印」而已。穩當的做法是讓 cups-web 只聽內網位址、不對外開放連接埠;若你真的想從外面遠端列印,透過自己架的 VPN 回到內網再存取,會比直接把網頁連接埠開到公網安全得多。另外要留意,官方容器預設走的是 HTTP 而非 HTTPS,列印內容與登入在內網為明文傳輸;若要從外部存取,建議走 Tailscale、ZeroTier 這類方案或自架 VPN,至少也要放在自己可控、帶認證的反向代理之後,不要直接把連接埠映射到公網。開源工具把控制權交給你,相對地也把「怎麼安全地開放存取」這個責任一起交給了你。
先別急著拉容器。cups-web 的網頁本身不難跑起來,真正決定能不能印的,是 Linux 認不認得你那台印表機型號。它背後仍然要靠 CUPS 跟印表機溝通,所以跑 Docker 的那台設備(NAS、樹莓派、小主機)必須先能識別印表機、找到可用驅動。
如果你的印表機型號冷門或是十年前的老機器,得先準備好 PPD 驅動檔;官方映像檔則預裝了 Brother、Canon、Epson、HP 等常見品牌的通用驅動庫,這些常見品牌多半能直接抓到。換句話說,前置的「驅動相容性」才是這類工具成敗的關鍵,跑起來網頁只是第一步,能不能真正印得出來,要看 CUPS 認不認得你那台機器。
這也是部署前最該先測的一件事。與其把整套 Docker 環境架好才發現印表機不支援,不如先確認手邊那台印表機在 Linux 下有沒有可用驅動,到原廠網站或開源驅動專案查一下、或直接在 CUPS 裡測試能否抓到。大廠的常見機型多半沒問題,真正容易踩雷的是十幾年前的老機型、或某些只出 Windows 驅動的小廠產品。先確認驅動相容,再投入架設的時間,會比事後除錯省事得多。
基本流程是把印表機接上一台能長期開機的設備,用 Docker 把 cups-web 跑起來,設定好印表機與權限,區域網路裡的裝置就能透過瀏覽器存取那個網頁入口列印。它需要的是一台願意 24 小時開著的機器,最常見的選擇是 NAS、樹莓派、軟路由或閒置小主機,而不是把印表機接在平常會關機的桌機上。
具體一點想像這個部署樣貌:你把那台老 USB 印表機用線接上 NAS 或樹莓派,在 Docker 裡啟動 cups-web 容器、掛好印表機與連接埠,然後到 CUPS 後台確認印表機被正確識別、裝好驅動。完成後,區域網路裡任何裝置打開瀏覽器、輸入那台服務端的內網網址,就會看到一個上傳檔案的網頁介面,選好印表機、按下列印,任務就送進佇列。整個過程對終端使用者來說就是「打開網頁、傳檔、列印」三個動作,簡單明瞭,驅動與格式轉換的複雜度都被藏在服務端那一台機器裡。

服務端設備的選擇也有一點取捨。NAS 是最省心的選擇,因為它本來就長期開機、也多半內建 Docker,等於現成的宿主機;樹莓派或類似的小板子成本最低、耗電極小,適合只想為列印這一件事常駐一台機器的人;閒置的小主機或軟路由算力較餘裕,未來還能順便跑其他自架服務。無論選哪種,關鍵都是「穩定常開」加上「USB 能接上印表機」,至於算力,cups-web 本身並不挑,轉檔吃重的部分主要在 LibreOffice 處理 Word 那一段。
幾個部署時容易漏掉的細節,值得先記下來。第一,印表機在 CUPS 後台必須設成 Shared(共用),Web 端才找得到它,沒勾這個會發現網頁裡空無一機。第二,預設管理帳號是 admin 加 admin,首次登入請立刻改密碼,別讓預設憑證留在會被內網任何人存取的服務上。第三,若你選擇不用 Docker 而是直接跑二進位,OFD 格式轉換會需要本機有 Java 17 環境,這點在 Docker 映像檔裡已備好、自己裝則要另處理。第四,轉檔過程會產生暫存檔,長期使用要留意磁碟清理,避免暫存把小主機的儲存空間吃滿。
資料處理上,檔案上傳與格式轉換都發生在你內網的那台服務端,不上傳到第三方雲端,這對處理敏感檔案的人是重要的隱私優勢。想處理 PDF 之外的特殊格式,或把這套列印流程與既有的檔案管理〈ChatPDF 這類能跟 PDF 對話的 AI 工具〉搭配,都在同一個內網環境裡完成,不必把檔案外送。
cups-web 最對口的是手邊有一台還堪用的 USB 印表機、又想讓手機平板和各種電腦都能方便列印的人。只要你不排斥用 Docker 在 NAS 或小主機上跑一個服務,它能把「每次列印都要找對電腦、裝對驅動」的麻煩,收斂成「打開瀏覽器上傳就印」。對家庭或小型辦公室來說,這是一個低成本把舊印表機再戰十年、又不必每台設備各自折騰驅動的實用方案。
它不適合完全不想碰 Docker 與命令列的人,或印表機型號太冷門、CUPS 找不到驅動的情況,那種情境直接換一台原生支援網路列印的新印表機會更省事。但若你有一台能長期開機的設備、印表機驅動也相容,cups-web 示範了一個很完整的自架列印入口做法,想動手可以從 GitHub 專案頁或 Docker Hub 取得映像檔。
幾個典型的使用情境可以幫你判斷適不適合自己架一套。家庭場景裡,爸媽的手機想印孫子的照片、孩子要印作業,都不必再等家用電腦開機、找驅動,手機直接傳檔就印。小型辦公室裡,一台老印表機接在 NAS 上,全辦公室的手機、筆電都能透過網頁列印,搭配多使用者與列印記錄還能控管用量。學校或補習班、社區圖書館這類公共列印需求,也能用它架一個簡單的網頁列印站,使用者不必在自己電腦裝驅動就能印。共同點是:把「列印」這件事從綁定某台電腦,解放成區域網路裡人人可用的公共服務。