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