日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

作為Web開發(fā)的同僚們,估計(jì)都有一個(gè)共同的煩惱,Web端為什么不能夠像 CS端那樣直接打印預(yù)覽?直接移除掉打印預(yù)覽界面不就可以了?

真實(shí)情況是Web端受限于瀏覽器的權(quán)限,無法直接訪問打印機(jī)等本機(jī)資源。所以,在Web上實(shí)現(xiàn)無預(yù)覽和打印并不是一個(gè)簡(jiǎn)單的問題,而是突破權(quán)限、突破平臺(tái)的問題。這就導(dǎo)致了用戶在打印報(bào)表時(shí),至少需要點(diǎn)擊兩個(gè)按鈕才能完成打印,如果是需要批量打印的場(chǎng)景,用戶則需要重復(fù)多次點(diǎn)擊按鈕,非常麻煩。

而不了解詳細(xì)內(nèi)情的甲方則會(huì)非常不解,這么簡(jiǎn)單的一個(gè)訴求,只是省去點(diǎn)擊一個(gè)操作步驟,為什么你們辦不到呢?

這種對(duì)于我們卑微乙方的靈魂拷問,讓我們也很頭疼,不是我們辦不到,是客觀條件不允許我們辦到。

作為一個(gè)資歷比較老的 Wyn Enterprise(讀音:One)嵌入式BI和ActiveReports報(bào)表控件的技術(shù)顧問,這兩年接觸的客戶,基本不再使用 Winform或WPF了,大部分項(xiàng)目都遷移到B/S 端,采用前后端分離的架構(gòu),或者 MVC。

在這種情況下,客戶都會(huì)面臨需要打印卻無法直接連接打印機(jī),進(jìn)行默認(rèn)打印的能力。如果是物流行業(yè)的企業(yè)或者生產(chǎn)制造企業(yè),網(wǎng)頁端打印,都是批量性的操作,比如物流單,每次批量打印上千張,如果每打印一張彈出一次打印預(yù)覽界面,可能用不了多久,我們的可愛的甲方會(huì)將我們的電話打爆炸。

在如此“嚴(yán)峻“的形勢(shì)之下,外加眾多用戶都追著詢問這個(gè)問題,靜默打印在 Web端的功能實(shí)現(xiàn)也是非常急迫的。

現(xiàn)在大部分打印過程基本是將需要打印的內(nèi)容導(dǎo)出為PDF文件,然后調(diào)用瀏覽器的打印預(yù)覽,進(jìn)行打印。既然有了第一步,就一定有直接實(shí)現(xiàn)靜默打印的方法。以下是本人搜索全網(wǎng),覺得比較合適的內(nèi)容,現(xiàn)將結(jié)果分享給大家。

實(shí)現(xiàn)思路有兩種:

  1. 設(shè)置瀏覽器
  2. 安裝插件,使用代理軟件

話不多說直接干貨,看看測(cè)試結(jié)果。

設(shè)置瀏覽器

有限制的地方就會(huì)有需求,既然打印時(shí)瀏覽器限制,那么就一定也有別的用戶也有我們同樣的需求,方法總比困難多。搜索后,我們找到在Chrome 和火狐瀏覽器的設(shè)置中,有解決的方法,這法子看著像模像樣,點(diǎn)贊也很多:

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

大致內(nèi)容是:

  1. 進(jìn)入 Chrome的高級(jí)設(shè)置,設(shè)置瀏覽器默認(rèn)的主頁為我們的 Web應(yīng)用需要靜默打印的頁面。跟著介紹,我們也操作起來。
  • 點(diǎn)擊設(shè)置
  • 外觀-設(shè)置顯示主頁按鈕,并輸入我們要訪問的 Web頁面。
突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

  • 打開桌面快捷方式,修改在后綴輸入--kIOSk --kiosk-printing。

而走到這一步,此路就不通了。系統(tǒng)會(huì)一直彈出如下的錯(cuò)誤,無法修改。

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

讓我們換個(gè)瀏覽器試試。

  1. 修改-火狐瀏覽器
  2. 在瀏覽器輸入:about:config
  3. 在輸入框輸入 print.always_print_silent

并設(shè)置為Boolean 類型,點(diǎn)+號(hào)

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 


突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

  • 重啟-測(cè)試打印

此時(shí)系統(tǒng)依然會(huì)彈出打印預(yù)覽對(duì)話框,此方法依舊無效。

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

使用代理軟件

JSPrint

使用方法簡(jiǎn)單,先用Demo網(wǎng)站調(diào)用JSPrintManager打印接口,然后使用客戶端進(jìn)行代理,就可以實(shí)現(xiàn)打印。支持的平臺(tái)有:windows 10, IE,Edge, 火狐,Chrome,Safari。

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

下面是一些常用能介紹。

使用用戶選擇打印機(jī)代碼示例:

const cpj = new JSPM.ClientPrintJob();
cpj.clientPrinter =  new JSPM.UserSelectedPrinter();
const printFile = new JSPM.PrintFilePDF(fileUrl, JSPM.FileSourceType.URL, fileName, copiesNumber);
cpj.files.push(printFile);
await cpj.sendToClient();

會(huì)出現(xiàn)打印對(duì)話框

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

使用默認(rèn)打印機(jī)

const cpj = new JSPM.ClientPrintJob();
cpj.clientPrinter =  new JSPM.DefaultPrinter();
const printFile = new JSPM.PrintFilePDF(fileUrl, JSPM.FileSourceType.URL, fileName, copiesNumber);
cpj.files.push(printFile);
await cpj.sendToClient();

使用安裝的打印機(jī)

const cpj = new JSPM.ClientPrintJob();
cpj.clientPrinter =  new JSPM.InstalledPrinter('Microsoft Print to PDF);
const printFile = new JSPM.PrintFilePDF(fileUrl, JSPM.FileSourceType.URL, fileName, copiesNumber);
cpj.files.push(printFile);
await cpj.sendToClient();

獲取打印機(jī)列表:

const printersInfo = await JSPM.JSPrintManager.getPrintersInfo();
console.log(printersInfo);

JSPrintManager使用起來并不難,但在的使用過程中,存在一些較為明顯的技術(shù)限制。 在測(cè)試過程中,我們發(fā)現(xiàn)由于未知的因素,會(huì)出現(xiàn)舊示例無法使用工作,需要我們新建一個(gè)示例來完成JSPrint的靜默打印的調(diào)用;除此之外,這種方法在火狐瀏覽器中無法正常執(zhí)行。如果你是mac OS需要注意,一旦試用JSPrintManager將無法卸載。

Wyn Enterprise

實(shí)現(xiàn)在線報(bào)表設(shè)計(jì),預(yù)覽及靜默打印一體功能Wyn Enterprise V5.0 Update1 帶來了突破性的報(bào)表打印——靜默打印。

操作步驟:

1、啟動(dòng)打印代理服務(wù)(打印代理是使用PowerShell 腳本完成的)

包含文件如下:

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 


啟動(dòng)代理必須的環(huán)境資源:
1、【Visual Studio 2022】
2、【.NET 6.0 SDK】
3、【.NET Core Hosting Bundle】
資源文件介紹:

./switchPrinter.ps1 切換默認(rèn)的打印機(jī)資源

`./start.ps1` 啟動(dòng)和安裝打印服務(wù)

./stop.ps1 停止服務(wù)
./build.ps1 如果修改了 src文件夾下的文件,需要啟動(dòng)該腳本,進(jìn)行重新編譯,編譯的項(xiàng)目會(huì)放置在./PrintAgent 文件夾中
./debug.ps1 如果修改了src文件夾,可以使用該腳本進(jìn)行調(diào)試。
啟動(dòng)代理服務(wù)器:
將示例下載后,以管理員權(quán)限打開powershell 工具可先執(zhí)行以下命令:
- 執(zhí)行命令 Set-ExecutionPolicy Bypass -Scope CurrentUser -Force 啟用執(zhí)行腳本功能

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

- 調(diào)用 ./switchPrinter.ps1 命令選擇默認(rèn)的打印機(jī)

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

- 使用 ./start.ps1 命令啟動(dòng)服務(wù),如果結(jié)束后,調(diào)用./stop.ps1 關(guān)閉案例

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 


突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 


2、啟動(dòng)成功后,我們?cè)賮磉\(yùn)行 WynReportDesigner 或WynViewer示例:
執(zhí)行這些示例,會(huì)自動(dòng)加載到默認(rèn)的打印機(jī)選項(xiàng),實(shí)現(xiàn)打印需求。

該示例代理使用葡萄城內(nèi)部的PDF打印庫進(jìn)行無聲打印。可以通過附件中的powershell腳本啟動(dòng)Agent并在Windows 10上注冊(cè)其自動(dòng)運(yùn)行。

配置成功后,可以看到點(diǎn)擊打印按鈕后,后臺(tái)會(huì)連接默認(rèn)的打印機(jī)進(jìn)行打印。

突破技術(shù)限制,實(shí)現(xiàn)Web端靜默打印

 

總結(jié)

解決靜默打印是沒有捷徑可以走的,設(shè)置瀏覽器該方法是看著是非常便捷,但是并無效果。這時(shí)使用代理是一個(gè)行之有效的方法,但是現(xiàn)成的智慧結(jié)晶往往需要一些知識(shí)付費(fèi)。Anyway,方法總比困難多,如果大家在遇到類似的需求時(shí),也不用發(fā)愁,現(xiàn)在市面上已經(jīng)出現(xiàn)了行之有效的方法去解決這個(gè)問題。

分享到:
標(biāo)簽:靜默 打印
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定