LODOP实现打印

主要函数:

●	PRINT_INIT(strPrintTaskName)打印初始化
●	SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)设定纸张大小
●	ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本项
●	ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)增加纯文本项
●	ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml)增加表格项
●	ADD_PRINT_SHAPE(intShapeType,intTop,intLeft,intWidth,intHeight,intLineStyle,intLineWidth,intColor)画图形
●	SET_PRINT_STYLE(strStyleName, varStyleValue)设置对象风格
●	PREVIEW打印预览
●	PRINT直接打印
●	PRINT_SETUP打印维护
●	PRINT_DESIGN打印设计

名片打印示例:

1、画一个名片大小的矩形边框:
LODOP.ADD_PRINT_RECT(10,55,360,220,0,1);
边框离纸张顶端10px(px是绝对值长度,等于1/96英寸,下同)距左边55px、宽360px、高220px、
框为实线(0-实线 1-破折线 2-点线 3-点划线 4-双点划线)、线宽为1px
2、设置基本打印风格:
LODOP.SET_PRINT_STYLE("FontSize",11);
"FontSize"是系统关键字,表示设置字体大小,11是字体大小值,单位是pt。
  
3、在矩形框内打印姓名栏:
LODOP.ADD_PRINT_TEXT(20,180,100,25,"郭德强");
姓名栏离纸张顶端20px、距左边180px、宽100px、高25px、内容为“郭德强”
  
4、设置姓名栏的打印风格:
LODOP.SET_PRINT_STYLEA(2,"FontName","隶书");
LODOP.SET_PRINT_STYLEA(2,"FontSize",15);
2是姓名栏的增加顺序号,"FontName"和"FontSize"是系统关键字,表示设置字体名和字体大小。
"隶书"是字体名值,同操作系统的字体名,15是字体大小值,单位是pt。
序号设0表示最新对象,注意SET_PRINT_STYLEA与SET_PRINT_STYLE的区别。
5、下面打印其职务、地址、电话等(用基本风格):
LODOP.ADD_PRINT_TEXT(53,187,75,20,"科学家");
LODOP.ADD_PRINT_TEXT(100,131,272,20,"地址:中国北京社会科学院附近东大街西胡同");
LODOP.ADD_PRINT_TEXT(138,132,166,20,"电话:010-88811888");
 
6、在发送以上指令前,一般要初始化并设置打印任务名:
LODOP.PRINT_INIT("打印插件功能演示_代码功能_名片");



页面打印示例:

HEAD:

<g:javascript src="zat/LodopFuncs.js"/>
    <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
        <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="install_lodop.exe"></embed>
    </object>

WEB前台:

<input type="button" value="预览" onclick="printlnRecord(${checkingRecordDetail.id});LODOP.PREVIEW()"/>
<input type="button" value="打印" onclick="printlnRecord(${checkingRecordDetail.id});LODOP.PRINT()"/>

JS:

function printlnRecord(id) {
            LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
            LODOP.PRINT_INIT("");
            LODOP.SET_PRINT_STYLEA(0, "Horient", 2);
            LODOP.ADD_PRINT_HTM(100, 40, "90%", "80%", document.getElementById(id).value);
        }

官方DEMO: 点击打开链接



2015-06-12补充:

保留原表单样式

WEB前台:

<div id="printForm">
        <table>
             .............
        </table>
</div>  
<input type="button" value="打印" onclick="printlnPaper(${bridgePatrol?.id}); LODOP.PRINT();"/>

样式:

<style id="printStyle" type="text/css">
    .div-content {
        border: 1px solid #87ceeb;
        background-color: white;
        padding: 10px;
        width: 90%;
        margin-left: auto;
        margin-right: auto;
    }

    table tr {
        margin-top: 10px;
        margin-bottom: 10px;
    }

    table {
        background-color: #e1e1e1;
        border-collapse: collapse;
    }

    td {
        padding: 10px;
        background-color: white;
        border: 1px solid #87ceeb;
    }

    td textarea {
        font-size: 12px;
    }
</style>

JS:

function printlnPaper(id) {
        var strBodyStyle = "<style>" + document.getElementById("printStyle").innerHTML + "</style>";
        var form1Str = strBodyStyle + document.getElementById("printForm").innerHTML;
        LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
        LODOP.ADD_PRINT_TEXT(20, 50, 260, 39, "桥梁巡查信息表单:");
        LODOP.ADD_PRINT_HTM(40, 40, "90%", "100%", form1Str);
}



layui是一个轻量级的前端UI库,而LODOP是LoRa Data Operation Print的缩写,它是一个用于在网页上实现打印机功能的JavaScript库。结合这两者可以创建一个简单的打印功能,包括文本自动换行。 以下是一个基本的HTML结构,利用layui的表格和lodop实现文本框内容的打印: ```html <!DOCTYPE html> <html lang="zh"> <head> <link rel="stylesheet" href="https://unpkg.com/layui/css/layui.css"> </head> <body> <input type="text" id="autoWrap" placeholder="输入内容,自动换行..."> <button onclick="printWithLayui()">打印</button> <!-- LODOP 初始化 --> <script src="http://l.duapp.com.cn/lodop/lodop.js"></script> <script> var ldp = new LODOP(); // 创建LODOP实例 function printWithLayui() { // 获取文本框内容 var content = document.getElementById('autoWrap').value; // 设置打印页眉 ldp.setMarge(0, 0, 0, 0); ldp.setTitle("自定义标题"); // 设置字体大小和颜色 ldp.setFontSize(14); // 字体大小单位为pt ldp.setTextColor(0x000000); // 黑色 // 打印文本,自动换行处理 for (var i = 0; i < content.split("\n").length; i++) { ldp.printT("自适应换行", content.split("\n")[i], "left", "", 0, -10); // 每行打印一次 } // 打印 if (ldp.draw()) { window.open(ldp.getUrl(), '_blank', 'width=640,height=480'); } } </script> </body> </html> ``` 在这个例子中,我们首先初始化了LODOP,然后在`printWithLayui`函数中获取文本框的内容,并通过循环逐行添加到打印流中,每行结束后会自动换行。当用户点击“打印”按钮时,会启动打印过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值