iT邦幫忙

0

請問 chrome, edge 瀏覽器如何抓取本機印表機並且能直接api打印?

  • 分享至 

  • xImage

目前打印都是讓對方下載pdf,下載完在瀏覽器打開,選擇印表機打印
目前需要是要避免對方重複打印,假如上述方式,會造成對方想打印多少份都可以。
查到方式都需要魔改瀏覽器參數,沒有簡單方式。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
貓虎皮
iT邦新手 3 級 ‧ 2023-04-19 19:57:30
最佳解答

辦法

您可以使用javascript的print();函式來完成影印,
且可以透過css的@page來設定影印參數,
並利用頁面跳轉、元素移除等方式來防止其再次影印。
不過這樣對方依然可以利用「將『目的地』設為『另存為PDF』」來將以儲存至本機,
並進行多次影印。

疑點

如果想要讓客戶端只能影印一次PDF,
且是以直接呼叫印表機的方式,
其實隱含著以下問題:

  1. 瀏覽器原本就不是設計來做印表機調用的,因為會有安全性問題(如果要調用印表機,直接開發電腦軟體的可控性較大)。
  2. 如果該電腦沒有設定連接的印表機,那麼要如何處理?
  3. 有心的人還是有辦法進行多次影印(如:可以透過印表機端進行檔案存取、印出來的檔案可以再複印、透過電腦內部程式攔截通訊封包後解碼、使用非瀏覽器的方式進行資料請求等)。

希望有幫助到您=^w^=

小MIS iT邦研究生 1 級 ‧ 2023-04-20 08:04:22 檢舉

謝謝您! 看來還是沒辦法

0

一般PDF生成後,就不太可能有辦法做列印限制了。

大多數處理的方法是標記認証記號來達到不會被修改的目的。

但如果是講義類或是教學版權等文件。
不得複印的情況。

一般這比較無解就是了。當然還是可以標記特別的記號上去。
來知道該PDF的來源是誰。

想直接文件系統限制,說真的很難辦到

0
eric_hsu58
iT邦新手 3 級 ‧ 2023-04-20 10:37:20

在海運業界給客戶在網頁系統介面上列印提單有類似你要的功能。
但是必須配合登入的帳號控管,不然無法知道是哪個客戶列印,
以及需要釋放出來的提單列印是哪幾張,以及搭配列印的元件
可以控管"只列印一次,無法下載的需求",但是有個狀況是,如果列印過程中
客戶端的印表機卡紙或是列印失敗,仍然是會被計算為已經列印完成。
這時候就必須重新向船公司申請並說明再次申請的理由。

0
DennisLu
iT邦好手 1 級 ‧ 2023-04-21 17:34:10

寫一隻agent常駐程式,
網頁執行列印不是操作列印,
而是在Server上新增任務跟指定Server上的列印內容,
當agent知道有列印任務,
向伺服器取得列印資料回來直接送到指定列表機去列印。
次數由Server控管。
不過終端指定列表機是PDF Printer輸出PDF,也是一樣的結果。

如果是區網內本地系統,
網頁上操作,
直接由Server則是送到列印到列印伺服器去印到指定單位的列表機,
client端連agent都不用也不是從client端送任務給本機驅動,
就直接控制次數在網頁系統內了。

我要發表回答

立即登入回答