Web打印的解決方案之證件套打

因爲之前未接觸過套打,一直以爲套打是一個比較神祕和麻煩的事情,由於打印機的位置老是須要調整的,你總不能硬編碼吧?可是若是位置可調,有須要直觀一些來處理,那就比較麻煩了。javascript

在前面介紹過《Web打印的解決方案之普通報表打印》的一片文章中提到過那個打印控件Lodop,作起套打來感受仍是挺方便的,至少位置調整界面不須要本身弄,位置嘛,也提供了自動保存的功能,不須要理會。html

通常的套打,包含了幾部分操做:打印預覽、打印維護、打印設計。java

打印預覽和打印維護是面向終端用戶的,打印維護是指內容不能修改刪除、但位置能夠調整,給不一樣的打印機不一樣的尺寸打印提供調整位置的可能性。函數

打印設計是面向開發人員的,開始須要經過這個功能來設計好套打的界面,就是根據套打證件的背景圖片,大體擺放好各個內容的位置。佈局

大體的實現代碼以下所示:post

複製代碼
<script language="javascript">
    var LODOP=document.getElementById("LODOP");//這行語句是爲了符合DTD規範
    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("已發出實際打印命令!"); 
        else 
           alert("放棄打印!"); 
    };    
    
function CreateDataBill() {
        LODOP.SET_PRINT_PAPER(10,10,762,533,"打印控件功能演示_Lodop功能_移動公司發票套打");
        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,"發票打印(第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,"國內漫遊通話");
        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,"增值業務費");
        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,"代收費");
        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,"優惠費");
        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,"-王府井中心店營");
        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,"費用合計");
        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> 
複製代碼

 

 其中大部份內容仍是比較好理解的,不一樣的功能調用不一樣的函數Preview爲預覽、Setup爲維護、Design爲設計。編碼

在套打的時候,注意須要經過下面代碼來設置顯示背景圖片(打印的時候,是不打印背景的)。spa

        LODOP.ADD_PRINT_SETUP_BKIMG("<img src=Report/證件背景.jpg' />");
        LODOP.SET_SHOW_MODE ("BKIMG_IN_PREVIEW",1); //打印預覽時是否包含背景圖

 

 

 另外,因爲報表的內容都是寫在HTML頁面中的,所以在動態設置內容的時候,一能夠用腳原本讀取界面元素做爲數據源,二能夠經過後臺代碼自動生成腳本代碼,輸出到前臺頁面中,看具體的須要了。設計

套打的預覽界面大體以下圖所示,其中藍色部分是須要打印的內容,背景圖片是一個發票的樣板。code

 

下面代碼是經過腳本獲取界面元素來取得相應的內容的,這種狀況適合於界面上可能會修改一些打印的內容的情景。

複製代碼
        LODOP.ADD_PRINT_TEXT(95, 695, 250, 52, document.getElementById("txtCompanyName").innerText); //業戶名稱
        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); //有效期 結束 年 
        LODOP.SET_PRINT_STYLEA(6, "FontSize", 11);
        LODOP.SET_PRINT_STYLEA(6, "Bold", 1);
        LODOP.ADD_PRINT_TEXT(396, 253, 30, 22, validateMonth); //有效期 結束 月
        LODOP.SET_PRINT_STYLEA(7, "FontSize", 11);
        LODOP.SET_PRINT_STYLEA(7, "Bold", 1);
        LODOP.ADD_PRINT_TEXT(396, 304, 32, 22, validateDay); //有效期 結束 日
        LODOP.SET_PRINT_STYLEA(8, "FontSize", 11);
        LODOP.SET_PRINT_STYLEA(8, "Bold", 1);
複製代碼

 最後附上它的設計界面,其中生成代碼功能能夠生成用於靜態HTML中的內容佈局顯示,作必定的修改調整就能夠用在動態頁面中了。很是有用的一個功能。

 

相關文章
相關標籤/搜索