起码地方调解分界面无需和睦弄,是或不是出示预览

是因为以前未接触过套打,平素认为套打是二个相比较神秘和麻烦的专门的职业,因为打字与印刷机的岗位三番五次要求调动的,你总无法硬编码吧?然则只要地点可调,有亟待直观一些来拍卖,那就比较麻烦了。

做过非常多的Web项目,大比比较多在打字与印刷页面内容的时候,接纳的都以因而Javascript调用系统内置的打字与印刷情势实行打字与印刷,约等于调用PrintControl.ExecWB(?,?)落成直接打字与印刷和打字与印刷预览功效。打字与印刷的法力及控制性尽管不是很好,但是也能勉强使用,应付一般的打字与印刷仍是能够的了。

在头里介绍过《Web打字与印刷的缓慢解决方案之普通报表打字与印刷》的一片作品中涉嫌过十三分打印控件Lodop,做起套打来以为照旧挺平价的,至少地方调解分界面没有供给协和弄,地方嘛,也提供了自动保存的意义,无需理会。

代码如下所示:

一般的套打,包含了几有些操作:打字与印刷预览、打印维护、打字与印刷设计。

图片 1图片 2代码

打字与印刷预览和打字与印刷维护是面向终端用户的,打字与印刷维护是指内容无法修改删除、但任务能够调治,给分歧的打字与印刷机差异的尺码打字与印刷提供调治职务的大概性。

//调用PrintControl.ExecWB(?,?)达成间接打印和打字与印刷预览成效。(直接用系统提供的print()方法打字与印刷无法遮掩有些区域)
//preview:是还是不是出示预览。null/false:不出示,true:呈现
function printPage(preview)
{
   try
   {
       var content=window.document.body.innerHTML;
       var oricontent=content;
       while(content.indexOf(“{$printhide}”)>=0) content=content.replace(“{$printhide}”,”style=’display:none'”);
       if(content.indexOf(“ID=\”PrintControl\””)<0) content=content+”<OBJECT ID=\”PrintControl\” WIDTH=0 HEIGHT=0 CLASSID=\”CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\”></OBJECT>”;
       window.document.body.innerHTML=content;
       //PrintControl.ExecWB(7,1)打印预览,(1,1)伸开,(4,1)另存为,(17,1)全选,(10,1)属性,(6,1)打印,(6,6)直接打字与印刷,(8,1)页面设置
       if(preview==null||preview==false) PrintControl.ExecWB(6,1);
       else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1
       window.document.body.innerHTML=oricontent;
   }
   catch(ex){ alert(“推行Javascript脚本出错。”); }
}

打印设计是面向开拓职员的,初阶须求通过那么些成效来设计好套打大巴分界面,正是依照套打证件的背景图片,大概摆放好种种内容的职位。

function printConten(preview, html)
{
   try
   {
       var content=html;
       var oricontent=window.document.body.innerHTML;
       while(content.indexOf(“{$printhide}”)>=0) content=content.replace(“{$printhide}”,”style=’display:none'”);
       if(content.indexOf(“ID=\”PrintControl\””)<0) content=content+”<OBJECT ID=\”PrintControl\” WIDTH=0 HEIGHT=0 CLASSID=\”CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\”></OBJECT>”;
       
       window.document.body.innerHTML=content;
       //PrintControl.ExecWB(7,1)打字与印刷预览,(1,1)展开,(4,1)另存为,(17,1)全选,(10,1)属性,(6,1)打字与印刷,(6,6)直接打字与印刷,(8,1)页面设置
       if(preview==null||preview==false) PrintControl.ExecWB(6,1);
       else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1
       window.document.body.innerHTML=oricontent;
   }
   catch(ex){ alert(“实践Javascript脚本出错。”); }
}

粗粗的兑当代码如下所示:

 

<script language=”javascript”>
    var LODOP=document.getElementById(“LODOP”);//那行语句是为了顺应DTD规范
    CheckLodop();
</script>
<script language=”javascript” type=”text/javascript”>   

下面多个函数放在多少个Js文件中,在页面内容中通过利用该脚本文件并调用进一步封装的函数就可以打字与印刷内定部分的内容:

    function Preview2() {        
        CreateDataBill();
          LODOP.PREVIEW();        
    };            
    function Setup2() {        
        CreateDataBill();
        LODOP.PRINT_SETUP();        
    };
    function Design2() {        
        CreateDataBill();
        LODOP.PRINT_DESIGN();

    <script language=”javascript”>
        function Print(preview) {
            var text = document.getElementById(“content”).innerHTML;
            printConten(preview, text);
        }

    };    
    function RealPrint() {        
        CreateDataBill();
        if (LODOP.PRINTA()) 
           alert(“已发生实际打字与印刷命令!”); 
        else 
           alert(“放弃打字与印刷!”); 
    };    
    
function CreateDataBill() {
        LODOP.SET_PRINT_PAPELacrosse(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_BKI名爵(“<img src=Report/证件背景.jpg’ />”);
        LODOP.SET_SHOW_MODE (“BKIMG_IN_PREVIEW”,1);
}
</script> 

打字与印刷的功用大概如下图所示,借使打字与印刷的页面在框架页面中,那么须要选定“仅打字与印刷选定框架”的选项。

 

图片 3

 个中比较多剧情依旧比较好掌握的,分裂的功用调用分歧的函数Preview为预览、Setup为掩护、Design为规划。

运用此种方法,没有要求设置任何控件,具有很好的卓殊优势,不过出来的表格内容,好像调控起来会比较辛勤一些,极其对于有些表格方面包车型大巴打字与印刷,须要输出复杂的源委是,也可能有自然的弱点,但完全来讲,也是一个较好的选项。

在套打客车时候,注意必要通过下边代码来设置显示背景图片(打字与印刷的时候,是不打字与印刷背景的)。

新兴在急需做一些证件套打地点的行事,那个控件就做不到了,由此须求一种办法照旧控件,能够较好管理套打方面包车型客车事务。

        LODOP.ADD_PRINT_SETUP_BKI名爵(“<img src=Report/证件背景.jpg’ />”);
        LODOP.SET_SHOW_MODE (“BKIMG_IN_PREVIEW”,1);
//打字与印刷预览时是或不是带有背景图

无意,发现一个比较好的打字与印刷控件,帮助各类格式的打字与印刷,还会有本人关怀的注脚套打功用,功效强大,使用也很简短的,特别值得推荐介绍。

 

控件的相关地方:

 

控件下载主页:http://mt.runon.cn/index.html

 别的,由于表格的剧情都以写在HTML页面中的,因而在动态设置剧情的时候,一能够用脚本来读取分界面成分作为数据源,二足以透过后台代码自动生成脚本代码,输出到前台页面中,看具体的内需了。

控件博客介绍:http://blog.sina.com.cn/s/articlelist_1340389911_0_1.html

套打大巴预览分界面大约如下图所示,其深宝蓝部分是必要打字与印刷的内容,背景图片是叁个发票的模范。

 

图片 4

应用这一个控件,普通报表的打字与印刷效果如下所示:

 

图片 5

上面代码是经过脚本获取分界面成分来猎取相应的原委的,这种气象切合于分界面上大概会修改部分打字与印刷的内容的风貌。

 

        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);

地点三个表格的打印其实都大概,都以打字与印刷部分的HTML内容,可是后面一个看起来要好一些,何况提供很周详的表格功用设置。

        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);

图片 6图片 7代码

 最终附上它的准备分界面,在那之中变化代码功效能够调换用于静态HTML中的内容布局显示,做断定的改变调治就足以用在动态页面中了。特别低价的贰个效果。

    <script language=”javascript”>
        function Print(preview) {
            var text = document.getElementById(“content”).innerHTML;
            printConten(preview, text);
        }
    </script>
    
    <script language=”javascript” src=”http://www.cnblogs.com/Scripts/CheckActivX.js"&gt;&lt;/script&gt;
    <object id=”LODOP” classid=”clsid:2105C259-1E0C-4534-8141-A753534CB4CA” width=0 height=0> </object> 
    <script language=”javascript”>
        var LODOP = document.getElementById(“LODOP”); //那行语句是为着契合DTD标准
        CheckLodop();
    </script>
    <script language=”javascript” type=”text/javascript”>

 图片 8

        function Preview() {//打字与印刷预览
            CreateLicenseData();
            LODOP.SET_SHOW_MODE(“PREVIEW_IN_BROWSE”, 1);
            LODOP.PREVIEW();
        };
        function Setup() {//打字与印刷维护 给用户调度地方
            CreateLicenseData();
            LODOP.PRINT_SETUP();
        };
        function Design() {//打印设计 开辟人士设置剧情和职分
            CreateLicenseData();
            LODOP.PRINT_DESIGN();
        };

 

        function CreateLicenseData() {
            LODOP.PRINT_INIT(“查询报表”);
            LODOP.ADD_PRINT_HTM(20, 40, 610, 900, document.all(“content”).innerHTML);
            LODOP.PREVIEW();
        }
    </script> 

 

 

 

大多时候,我们也没的内容,都以经过CSS来决定美观的,所以临时,我们打字与印刷部分HTML,未有那几个样式的话,那么出来的Table格式和字体,只怕都会发生变化,不太雅观。那么就供给开始展览HTML的样式设置。

图片 9

若果给打字与印刷内容设置了体制,那么出来的分界面效果就好广大了。

图片 10

 

安装样式的代码如下所示。

图片 11图片 12代码

    <script language=”javascript” type=”text/javascript”>

        function Preview() {//打字与印刷预览
            CreateLicenseData();
            LODOP.SET_SHOW_MODE(“PREVIEW_IN_BROWSE”, 1);
            LODOP.PREVIEW();
        };

        function CreateLicenseData() {
            LODOP.PRINT_INIT(“申请处理单”);
            var strBodyStyle = “<link type=’text/css’ rel=’stylesheet’ href=’http://www.cnblogs.com/Themes/Default/style.css‘ /><style><!–table { border:1;background-color: #CBCBCC } td {background-color:#FFFFFE;border: 1; } th { background-color:#F1F1F3;padding-left:5px;border:1}–></style>”;
            var strFormHtml = strBodyStyle + “<body>” + document.getElementById(“content”).innerHTML + “</body>”;
            LODOP.ADD_PRINT_HTM(20, 40, 610, 900, strFormHtml);
            LODOP.PREVIEW();
        }
    </script> 

 

 

下一篇三翻五次介绍下证件套打大巴打字与印刷功效。

相关文章