Web打印解決方案之證件套打的實(shí)現(xiàn)思路
在前面介紹過《Web打印解決方案之普通報(bào)表打印功能》的一片文章中提到過那個(gè)打印控件Lodop,做起套打來感覺還是挺方便的,至少位置調(diào)整界面不需要自己弄,位置嘛,也提供了自動(dòng)保存的功能,不需要理會(huì)。
一般的套打,包含了幾部分操作:打印預(yù)覽、打印維護(hù)、打印設(shè)計(jì)。
打印預(yù)覽和打印維護(hù)是面向終端用戶的,打印維護(hù)是指內(nèi)容不能修改刪除、但位置可以調(diào)整,給不同的打印機(jī)不同的尺寸打印提供調(diào)整位置的可能性。
打印設(shè)計(jì)是面向開發(fā)人員的,開始需要通過這個(gè)功能來設(shè)計(jì)好套打的界面,就是根據(jù)套打證件的背景圖片,大致擺放好各個(gè)內(nèi)容的位置。
大致的實(shí)現(xiàn)代碼如下所示:
<script language="javascript">
var LODOP=document.getElementById("LODOP");//這行語句是為了符合DTD規(guī)范
CheckLodop();
</script>
<script language="javascript" type="text/javascript">
function Preview2() {
CreateDataBill();
LODOP.PREVIEW();
};
function Setup2() {
CreateDataBill();
LODOP.PRINT_SETUP();
};
function Design2() {
CreateDataBill();
LODOP.PRINT_DESIGN();
};
function RealPrint() {
CreateDataBill();
if (LODOP.PRINTA())
alert("已發(fā)出實(shí)際打印命令!");
else
alert("放棄打??!");
};
function CreateDataBill() {
LODOP.SET_PRINT_PAPER(10,10,762,533,"打印控件功能演示_Lodop功能_移動(dòng)公司發(fā)票套打");
LODOP.ADD_PRINT_TEXT(126,150,100,20,"郭德剛");
LODOP.SET_PRINT_STYLEA(1,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(151,150,100,20,"13954885177");
LODOP.SET_PRINT_STYLEA(2,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(125,584,99,20,"發(fā)票打印(第1次)");
LODOP.SET_PRINT_STYLEA(3,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(465,140,198,20,"陸百柒拾捌元叁角零分");
LODOP.SET_PRINT_STYLEA(4,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(465,599,70,20,"678.30");
LODOP.SET_PRINT_STYLEA(5,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(496,408,59,20,"H112063");
LODOP.SET_PRINT_STYLEA(6,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(191,58,100,20,"國內(nèi)漫游通話");
LODOP.SET_PRINT_STYLEA(7,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(191,217,100,20,"584.00");
LODOP.SET_PRINT_STYLEA(8,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(222,58,100,20,"增值業(yè)務(wù)費(fèi)");
LODOP.SET_PRINT_STYLEA(9,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(222,217,100,20,"48.30");
LODOP.SET_PRINT_STYLEA(10,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(251,58,100,20,"代收費(fèi)");
LODOP.SET_PRINT_STYLEA(11,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(251,217,100,20,"50.00");
LODOP.SET_PRINT_STYLEA(12,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(280,58,100,20,"優(yōu)惠費(fèi)");
LODOP.SET_PRINT_STYLEA(13,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(280,217,100,20,"4.00");
LODOP.SET_PRINT_STYLEA(14,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(98,101,150,20,"101081005747319387");
LODOP.SET_PRINT_STYLEA(15,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(97,307,150,20,"2008年10月19日 10:28:38");
LODOP.SET_PRINT_STYLEA(16,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(152,584,103,20,"138860016786");
LODOP.SET_PRINT_STYLEA(17,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(95,571,112,20,"06775516");
LODOP.SET_PRINT_STYLEA(18,"FontName","System");
LODOP.SET_PRINT_STYLEA(18,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(496,135,183,20,"2008年09月(20080901-20080930)");
LODOP.SET_PRINT_STYLEA(19,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(496,572,112,20,"-王府井中心店?duì)I");
LODOP.SET_PRINT_STYLEA(20,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(311,217,100,20,"678.30");
LODOP.SET_PRINT_STYLEA(21,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(311,58,100,20,"費(fèi)用合計(jì)");
LODOP.SET_PRINT_STYLEA(22,"FontColor",16711680);
LODOP.ADD_PRINT_SETUP_BKIMG("<img src=Report/證件背景.jpg' />");
LODOP.SET_SHOW_MODE ("BKIMG_IN_PREVIEW",1);
}
</script>
其中大部分內(nèi)容還是比較好理解的,不同的功能調(diào)用不同的函數(shù)Preview為預(yù)覽、Setup為維護(hù)、Design為設(shè)計(jì)。
在套打的時(shí)候,注意需要通過下面代碼來設(shè)置顯示背景圖片(打印的時(shí)候,是不打印背景的)。
LODOP.ADD_PRINT_SETUP_BKIMG("<img src=Report/證件背景.jpg' />");
LODOP.SET_SHOW_MODE ("BKIMG_IN_PREVIEW",1); //打印預(yù)覽時(shí)是否包含背景圖
另外,由于報(bào)表的內(nèi)容都是寫在HTML頁面中的,因此在動(dòng)態(tài)設(shè)置內(nèi)容的時(shí)候,一可以用腳本來讀取界面元素作為數(shù)據(jù)源,二可以通過后臺(tái)代碼自動(dòng)生成腳本代碼,輸出到前臺(tái)頁面中,看具體的需要了。
套打的預(yù)覽界面大致如下圖所示,其中藍(lán)色部分是需要打印的內(nèi)容,背景圖片是一個(gè)發(fā)票的樣板。

下面代碼是通過腳本獲取界面元素來取得相應(yīng)的內(nèi)容的,這種情況適合于界面上可能會(huì)修改一些打印的內(nèi)容的情景。
LODOP.ADD_PRINT_TEXT(95, 695, 250, 52, document.getElementById("txtCompanyName").innerText); //業(yè)戶名稱
LODOP.SET_PRINT_STYLEA(1, "FontSize", 14);
LODOP.SET_PRINT_STYLEA(1, "Bold", 1);
var licenseDate = document.getElementById("txtLicenseDate").value;//證件有效期
var licenseYear = "";
var licenseMonth = "";
var licenseDay = "";
if (licenseDate != null && licenseDate != "") {
licenseYear = licenseDate.split("-")[0];
licenseMonth = licenseDate.split("-")[1];
licenseDay = (licenseDate.split("-")[2]).substr(0, 2);
}
LODOP.ADD_PRINT_TEXT(396, 190, 46, 22, validateYear); //有效期 結(jié)束 年
LODOP.SET_PRINT_STYLEA(6, "FontSize", 11);
LODOP.SET_PRINT_STYLEA(6, "Bold", 1);
LODOP.ADD_PRINT_TEXT(396, 253, 30, 22, validateMonth); //有效期 結(jié)束 月
LODOP.SET_PRINT_STYLEA(7, "FontSize", 11);
LODOP.SET_PRINT_STYLEA(7, "Bold", 1);
LODOP.ADD_PRINT_TEXT(396, 304, 32, 22, validateDay); //有效期 結(jié)束 日
LODOP.SET_PRINT_STYLEA(8, "FontSize", 11);
LODOP.SET_PRINT_STYLEA(8, "Bold", 1);
最后附上它的設(shè)計(jì)界面,其中生成代碼功能可以生成用于靜態(tài)HTML中的內(nèi)容布局顯示,做一定的修改調(diào)整就可以用在動(dòng)態(tài)頁面中了。非常有用的一個(gè)功能。

以上所述是小編給大家介紹的Web打印解決方案之證件套打的實(shí)現(xiàn)思路,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Bootstrap中的fileinput 多圖片上傳及編輯功能
這篇文章主要介紹了Bootstrap中的fileinput 多圖片上傳及編輯功能的實(shí)現(xiàn),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
js兼容pc端瀏覽器并有多種彈出小提示的手機(jī)端浮層控件實(shí)例
這篇文章主要介紹了js兼容pc端瀏覽器并有多種彈出小提示的手機(jī)端浮層控件,實(shí)例分析了javascript多種彈出層效果的實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
利用javaScript實(shí)現(xiàn)點(diǎn)擊輸入框彈出窗體選擇信息
這篇文章主要是對(duì)利用javaScript實(shí)現(xiàn)點(diǎn)擊輸入框彈出窗體選擇信息進(jìn)的實(shí)例行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
JavaScript實(shí)現(xiàn)垂直滾動(dòng)條效果
這篇文章為大家詳細(xì)主要介紹了JavaScript實(shí)現(xiàn)垂直滾動(dòng)條效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Web層改進(jìn)II-用xmlhttp 無聲息提交復(fù)雜表單
Web層改進(jìn)II-用xmlhttp 無聲息提交復(fù)雜表單...2007-01-01
javascript cookie解碼函數(shù)(兼容ff)
javascript cookie解碼函數(shù)2008-03-03
使用swiper自定義分頁點(diǎn)擊跳轉(zhuǎn)指定頁面
這篇文章主要介紹了使用swiper自定義分頁點(diǎn)擊跳轉(zhuǎn)指定頁面方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
一文詳細(xì)分析前端請(qǐng)求中的“Unsupported?Media?Type”問題
在Web開發(fā)中,前后端交互頻繁遇到HTTP狀態(tài)碼415錯(cuò)誤,這表明服務(wù)器無法處理因Content-Type不匹配的請(qǐng)求,常見于POST或PUT請(qǐng)求,必須確保請(qǐng)求頭中的Content-Type與服務(wù)器期望的一致,跨域請(qǐng)求中,需要的朋友可以參考下2024-10-10

