import {getLodop} from '@/utils/LodopFuncs.js'
//打印表格
export default{
// num 打印还是打印预览 conData 对象形式 传入需要的值 自定义 (自己添加的属性要在下面备注)
// conData title 标题 OrgName科室名字
lodopTable:function(num,conData){
//原始table
var table = document.getElementsByClassName("tablePrin")[0]
var thead = table.getElementsByTagName("thead")[0]
var tbody = table.getElementsByTagName("tbody")[0]
var clnThead = thead.cloneNode(true)
var clnTbody = tbody.cloneNode(true)
document.getElementsByClassName("colneTable")[0].appendChild(clnThead)
document.getElementsByClassName("colneTable")[0].appendChild(clnTbody) var printTable = document.getElementsByClassName("printTable")[0]
var printTableTbody = printTable.getElementsByTagName("tbody")[0] var tbodyChild = printTableTbody.children
// 循环tbody的子元素
for (let i = 0; i < tbodyChild.length; i++) {
var tbodyTrChild = tbodyChild[i].children
//循环tbody子元素的子元素
for (let a = 0; a < tbodyTrChild.length; a++) {
// let tbodyTrChildSpan = tbodyTrChild[a].getElementsByTagName("span")
let text text = this.xhTbodySpan(tbodyTrChild[a]) tbodyTrChild[a].innerHTML = text
tbodyTrChild[a].style = "text-align:center;width:80px;word-break: break-all;padding:5px 0;font-size:15px;font-style:normal"
}
} LODOP = getLodop()
LODOP.PRINT_INIT("");
LODOP.SET_PRINT_PAGESIZE(2, 0, 0, "A4"); //1竖版 2横版
LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW", true); //宽度溢出缩放 //创建表格打印 表头自动每页都有
LODOP.ADD_PRINT_TABLE(40,10,"RightMargin:0.9cm",600,document.getElementsByClassName("printTable")[0].innerHTML); //创建页码 每页都有
LODOP.ADD_PRINT_TEXT("98%", "90%", 200, 22, "第#页/共&页");
LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
//2代表页码类型 1代表其他类型 每页都显示必须函数
//标题
LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
LODOP.ADD_PRINT_TEXT(10, 400, 300, 100, `${conData.title}`);
LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
LODOP.SET_PRINT_STYLEA(0, "ItemType", 1);
//科室
LODOP.ADD_PRINT_TEXT(10, 10, 300, 100, `科室:${conData.OrgName}`);
LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
LODOP.SET_PRINT_STYLEA(0, "ItemType", 1);
// LODOP.ADD_PRINT_TEXT('97%', 10, '100%', 100, `病区护士长:${this.noteForm.HeadNurseName} 灭火:${this.noteForm.FireFight} 报告:${this.noteForm.Presentation} 疏散:${this.noteForm.Evacuate}`);
LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
LODOP.SET_PRINT_STYLEA(0, "ItemType", 1);
if(num){
LODOP.PREVIEW();
}else{
LODOP.PRINT();
}
location.reload();
},
//遍历子元素直到最后一个子元素
xhTbodySpan:function (ele) {
let con
let eleChild = ele.children
if (eleChild.length > 0) {
return this.xhTbodySpan(eleChild[0])
} else {
con = ele.innerHTML
} return con
}
}

lodopTable.js

官网下载lodop.js

  1. 在min.js设置全局

import lodopTable from './utils/lodopTable'

Vue.prototype.$lodopTable = lodopTable

  1. 在需要调用的页面 找到需要打印的那个表格 添加class  tablePrin
  2. 添加一下段落到最后面

<div class="printTable" hidden>

<table class="colneTable" border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse" bordercolor="#000000"></table>

</div>

5.在methods中加上这段代码  title自己定义 OrgName更加实际情况改变 num 0代表打印 1代表打印预览

lodopTable(num){

this.$lodopTable.lodopTable(num,{

"title":"工作量日报",

"OrgName":this.$cookies.get("orgInfo").OrgName

})

},

使用lodop.js打印控件打印table并分页等的更多相关文章

  1. Lodop打印控件 打印透明图问题

    Lodop通过增设transcolor属性实现了“先字后章”效果,这个属性可以把某种颜色转成类似透明的效果.例如:把图章的底色白色变成透明:transcolor="#FFFFFF" ...

  2. Lodop打印控件 打印‘接下一页’‘以下空白’

    Lodop打印控件中,超文本超过设置的打印项高度 或超过纸张,就会自动分页,纯文本通过设置为多页项也可以根据打印项高度自动分页,Lodop中还提供了许多手动分页的方法,对于多页文档中(自动分页或手动分 ...

  3. Lodop打印控件 超文本自动分页

    Lodop打印控件打印html超文本,通常传入一个超文本内容可能会超过纸张,如果要拆分每页显示哪些然后手动分页比较麻烦,Lodop中的超文本都有自动分页的特点.自动分页的依据:1.超文本超过设置的打印 ...

  4. Lodop打印控件输出页码(超文本和纯文本页码)

    Lodop打印控件打印超文本既可以手动分页,也可以自动分页,自动分页可阅读本博客的另一篇博文:Lodop打印控件 超文本自动分页 自动分页的时候,往往是不知道需要打印的内容到底分了几页,也就不可能预先 ...

  5. Windows 打印控件

    Windows窗体的PrintDocument组件用于设置一些属性,这些属性说明,在基于Windows的应用程序中要打印说明内容以及打印文档的能力,可将它与PrintDialog组件一起使用来控制文档 ...

  6. 比较好用的web打印控件——Lodop

    前一段时间公司一项目比较特殊,客户要求打印单必须是淘宝上卖的那种三联打印单.如果还是使用原来系统自带的打印的话,就会造成无法打印出来理想的效果,于是找了下相关的打印控件,比较网络上比较流行的几款插件, ...

  7. lodop 打印控件的使用

    先看效果图 : lodop插件  需要安装 打印浏览效果: 实现打印的前提条件 去官网下载几个js包 : http://www.lodop.net/download.html 添加到项目中 图片如下: ...

  8. Lodop打印控件传入css样式、看是否传入正确样式

    Lodop中可以传入页面存在的css样式,也可以是拼接后的新样式,例如本博客的其他博文:Lodop打印如何隐藏table某一列 需要打印的页面,样式不一定都是行内样式,style样式单独写在页面上,或 ...

  9. C# lodop 打印控件的使用

    原文:https://www.cnblogs.com/izhiniao/p/4160117.html 官网:http://www.mtsoftware.cn/demo.html 先看效果图 : lod ...

随机推荐

  1. [java]借助java.io.File类,完成文件批量改名

    列出某目录下的所有文件,将文件改名,借助java.io.File一个类就可以完成.大家可以发现,代码中的具体方法都是File一个类的. 另外要注意的是,File的全路径名,路径是一致的,父路径其实是文 ...

  2. 以太坊Geth通过私钥导入新地址到钱包步骤

    Open TextEdit Paste key into TextEdit without any extra characters or quotations Save the file as pk ...

  3. Windows 7开发:UAC数据重定向 - Win32 Native

    Windows 7开发:UAC数据重定向 - Win32 Native 目标 本动手实验中,您将会学习如何: • 故障排除一个文件重定向 问题 • 使用Process Monitor查找引起问题的根本 ...

  4. ubuntu tensorflow cpu faster-rcnn 测试自己训练的模型

    (flappbird) luo@luo-All-Series:~/MyFile/tf-faster-rcnn_box$ (flappbird) luo@luo-All-Series:~/MyFile/ ...

  5. 08ListView动态列表组件 以及循环动态数据

    效果: main.dart import 'package:flutter/material.dart'; import 'res/listData.dart'; /* ListView:参数 scr ...

  6. windows10 企业版 安装应用商店

    安装windows10企业版后,提示 没有nvdia control panel 在其他位置下载均不成功 必须在win10自带的应用商店中安装,但win10企业版没有应用商店, 使用下方的网盘安装应用 ...

  7. npm install --save react-native-device-info报错

    报错截图如下: 把react-native-device-info删了再添加还是这样,后面使用yarn就成功了. 然后发现会报错,这里估计是Xcode 9的bug,你只要确保以下显示就可以了.没有自己 ...

  8. nginx和php-fpm 是使用 tcp socket 还是 unix socket ?

    转自 http://blog.csdn.net/qq624202120/article/details/60957634 从上面的图片可以看,unix socket减少了不必要的tcp开销,而tcp需 ...

  9. JavaScript:undefined!=false之解 及==比较的规则

    JS中有一个基本概念就是: JavaScript中undefined==null 但undefined!==null undefined与null转换成布尔值都是false 如果按照常规想法,比如下面 ...

  10. AWS物联网解决方案之:如何将设备安全地接入AWS IoT

    1 简介 AWS IoT解决方案是一个全托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互.AWS IoT可以支持数十亿太设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路 ...