Lodop在WEB頁面中打印二維條碼并設(shè)置固定寬高大小
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
在WEB下打印條碼的傳統(tǒng)辦法,一種是在客戶端操作系統(tǒng)內(nèi)安裝專門的條碼字體庫;另外一種辦法是在服務(wù)器端提前生成條碼圖,然后客戶端用輸出圖片的方式來打印。兩種辦法的弊端是顯而易見的,對于條碼值更長更復(fù)雜的二維碼,第一種方式甚至都無法實現(xiàn)了,只能靠第二種打印圖片的方式,但假如條碼的內(nèi)容值是前端頁面程序通過用戶操作臨時產(chǎn)生的(例如JS富客戶端),那么這種方式也沒轍了。 用免費打印控件Lodop輸出條碼,就克服了以上所有弊端,顯然簡單可行的多。這種方式不需要安裝條碼字庫,也不需要服務(wù)器端預(yù)先生成圖片,WEB頁面用javascript語句調(diào)用控件函數(shù)直接輸出,打印時無論一維條碼還是二維碼,僅需要一行語句就可以實現(xiàn),語法格式如下: LODOP.ADD_PRINT_BARCODE(Top,Left,Width,Height,BarCodeType,BarCodeValue); 函數(shù)的前四個參數(shù)用來控制條碼在紙張中的輸出位置和區(qū)域大小,最后倆參數(shù)指明條碼的類型和內(nèi)容值。條碼類型的可選值很多,當(dāng)其為"QRCode"時表示打印輸出QRCODE型二維碼,例如下面的真實語句: LODOP.ADD_PRINT_BARCODE(10,20,100,100,"QRCode","1234567內(nèi)容可以包含漢字"); 這里兩個100表示條碼區(qū)域?qū)捄透叨际?00px(1px=1/96英寸),控件會根據(jù)這個區(qū)域值來自動適配QRCODE的版本(QRCodeVersion),版本是QRCODE二維碼的重要屬性概念,它決定了內(nèi)容值的長度,QR碼分為 version 1 到version 40 共40種類型,目前Lodop控件只支持版本1、2、3、5、7、10、14這7個常用版本。另外容錯率影響QRCode版本的最大輸出值,設(shè)置容錯率的語句: LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M"); //L為低容錯率7%,默認(rèn)是M級容錯率15%,最高級H級容錯率是30% 在容錯率為M時,對應(yīng)的內(nèi)容值長度如下: 版本1 => 最大內(nèi)容長度是14個字符或7個漢字; 版本3 => 最大內(nèi)容長度是42個字符或21個漢字; 版本7 => 最大內(nèi)容長度是122個字符或61個漢字; 版本14=> 最大內(nèi)容長度是362個字符或181個漢字; 最后的版本14都可以在這么小的區(qū)域內(nèi)打印一篇短文了,可見二維碼的科學(xué)性和信息優(yōu)勢有多大呀!但高版本由于條碼密度大,掃描失敗可能性增加,所以有時候你可能非常希望打印低版本的條碼,如下這句指令就可以強(qiáng)制控件按版本3來打?。?/p> LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",3); 正常情況下需要以上兩行指令才達(dá)到目的,這樣說是不是感覺我也是標(biāo)題黨呀,呵呵,當(dāng)然,以上僅是我的粗淺認(rèn)識,還請朋友們留言指正。 完整代碼如下: LODOP.ADD_PRINT_BARCODE(10,20,100,100,"QRCode","1234567"); //第一個二維碼 效果: 在線演示如下: http://www.mtsoftware.cn/demolist/PrintSample2.html 更多詳細(xì)介紹: 一、條碼語句默認(rèn)是Auto類型自適應(yīng)寬度或高度,默認(rèn)Auto屬性,如下圖。
圖(一) 二維碼或條碼是由豎條和橫條組成,設(shè)定寬度后,自動計算每條應(yīng)占用的寬度,計算后的合計寬度一般是小于等于設(shè)定寬度,所以條碼或二維碼的增大或縮小是受每個豎條或橫條的寬度合計值影響,比如40個豎條,每一個增加1px,總寬度就增加了40px,所以寬度和高度跳躍式放大或縮小,是非線性。默認(rèn)Auto屬性,QRCode二維碼根據(jù)內(nèi)容多少自動調(diào)整顯示級別,也就是寬度和高度的自適應(yīng)。 二、去掉默認(rèn)auto自適應(yīng)屬性,保證輸出的二維碼寬高不變 用類似這個語句設(shè)置條碼屬性到具體版本號就可以了: LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",5); //其中參數(shù)5是版本號 C-Lodop和Lodop主要支持二維碼類型:QRCode和PDF417,常用的是QRCode,QR碼分為 version 1 到version 40 共40種類型,目前C-Lodop和Lodop支持7種版本:1、2、3、5、7、10、14。 另外容錯率影響QRCode版本的最大輸出值,設(shè)置容錯率的語句: LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","L"); //L為低容錯率7%,默認(rèn)是M級容錯率15%,最高級H級容錯率是30% 相對于低容錯L 7% 所能輸出的最大字符數(shù)值如下: 版本1:最大值17個字符 版本2:最大值32個字符 版本3:最大值53個字符 版本5:最大值106個字符 版本7: 最大值154個字符 版本10:最大值135個漢字 271個字符 版本14:最大值229個漢字,458個字符 超出了會有內(nèi)容溢出提示“QRCode data overflow”,如果條碼內(nèi)容為空提示“QRCode data null” 該文章在 2023/10/21 14:49:31 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |