当前位置: 首页 > article >正文

简单上手vue使用vue-plugin-hiprint进行打印

      vue-plugin-hiprint是一个功能十分强大的打印插件,正因为功能强大,所以看起来感觉非常复杂,网上示例代码为了追求展现其强大,往往也做的非常庞大,学和分析起来对新手都不友好。本文较简单的让大家上手了解如何使用vue-plugin-hiprint插件打印自己页面需要打印的内容。

1、安装插件:

      npm i vue-plugin-hiprint 或npm install vue-plugin-hiprint

2、在要使用插件的页面导入插件:

      import { hiprint, defaultElementTypeProvider } from "vue-plugin-hiprint";

3、定义一个模板对象并传入模板设置。所谓模板就是你想打印到纸张上的数据和格式的设置,描述你要在什么样的纸上打印什么样的数据,数据打印出来的格式是什么样的等等信息。

        定义模板对象:var hiprintTemplate = new hiprint.PrintTemplate(options);

          options就是所有要打印数据的设置信息了,是一个json对象,定义模板对象之前,你要先设置好这个json对象:

          {template:模板json数据,settingContainer:用于输出的Html容器,fields:元素的字段数据源}。

        这里如果你想先输出到网页上预览,就设置settingContainer,比如你要把打印内容放到页面上

<div id="PrintPreview"></div>

       的容器中去,则直接设置为:settingContainer:“#PrintPreview”,就可以了,其实打印控制界面已经有预览了,大部分场景我们不需要再先输出到网页上预览,所以,也可以不设置。fields我们这里不管它,主要用于实现下拉框等数据源的工作,也可以不设置。

       所以,我们主要是要设置template,也就是打印模板的json数据。

4、打印模板template的设置:

let myTemplate={
        panels: [
          {            
            height: 296.6,        //输出纸张高度,此处为A4高
            width: 210,           //输出纸张宽度,此处为A4宽
            paperHeader: 0,       //页眉高度
            paperFooter: 0,       //页脚高度 
            //具体的打印内容设置
            printElements: [
              { 
                  //画一个矩形
                  options: { 
                    left: 4.5, 
                    top: 4.5,
                    height: 189,
                    width: 288, 
                    coordinateSync: false, 
                    widthHeightSync: false, borderColor: "#000" }, 
                    printElementType: { title: "矩形", type: "rect" } 
               },
               {
                //画一个二维码
                options: {
                  left: 145.5,
                  top: 15,
                  height: 123,
                  width: 130.5,
                  field: "UnitPriceId",
                  testData: "CODE888888888",
                  fontSize: 12,
                  lineHeight: 18,
                  textType: "qrcode",
                  title: "二维码",
                  right: 278.25,
                  bottom: 127.5,
                  vCenter: 211.5,
                  hCenter: 71.25,
                  },
                printElementType: { title: "二维码", type: "text" },
              },
              {
                //写一段文本
                options: { 
                        left: 15, 
                        top: 21, 
                        height: 17, 
                        width: 120, 
                        testData: "材料名称", 
                        fontSize: 10.5, 
                        fontWeight: "700", 
                        textAlign: "center", 
                        hideTitle: true, field: 'Name', title: "" },
                    printElementType: { title: "", type: "text" },
              },
              //可以继续添加更多你想要写的内容
                             
            ],            
            paperNumberLeft: 267,        //页码左边距
            paperNumberTop: 176,        //页码顶边距
            paperNumberDisabled: true,  //是否屏蔽不显示页码
            watermarkOptions: {},       //水印设置
          },
        ],
      };

  上面这个设置画了一个矩形框,在矩形框里面画了一个二维码,并输出了一行文字 。

  在定义模板对象的时候传入自定义的模板:

  var hiprintTemplate = new hiprint.PrintTemplate({template:myTemplate})

5、定义完模板对象后,就可以直接打印了:

     

       this.hiprintTemplate.print()


http://www.kler.cn/news/322590.html

相关文章:

  • 【FastAPI】使用 SQLAlchemy 和 FastAPI 实现 PostgreSQL 中的 JSON 数据 CRUD 操作
  • 【线程】POSIX信号量---基于环形队列的生产消费者模型
  • windows10使用bat脚本安装前后端环境之msyql5.7安装配置并重置用户密码
  • Meta震撼发布Llama3.2大规模模型
  • 记录QTreeView使用(item勾选,事件,过滤)
  • cubemx配置ADC
  • [3]Opengl ES着色器
  • ST188单光束反射式红外光电传感器心率测量原理
  • 混拨动态IP代理的优势是什么
  • 网络编程(10)——json序列化
  • leetcode721. 账户合并
  • 高级算法设计与分析 学习笔记9 跳表
  • 【论文阅读】RISE: 3D Perception Makes Real-World Robot Imitation Simple and Effective
  • 动态规划入门题目->使用最小费用爬楼梯
  • Ceph 基本架构(一)
  • Docker实践与应用
  • QT开发模式(一):界面和业务逻辑分离
  • 基于Hive和Hadoop的电商消费分析系统
  • 人工智能之计算机视觉的发展历程与相关技术内容,相应的模型介绍
  • docker-文件复制(docker cp:用于在Docker主机和容器之间拷贝文件或目录)
  • Windows系统的Tomcat日志路径配置
  • 在 Ubuntu 上构建 Electron 项目时的问题记录和解决方法
  • Meta的LLaMA 3.2系列大模型打败OpenAI,Orion的原型AR眼镜更是引领科技新时代!
  • WiFi无线连接管理安卓设备工具:WiFiADB
  • 初学者教程:如何使用谷歌云API
  • 怎样用云手机进行TikTok矩阵运营?
  • 力扣(leetcode)每日一题 2207 字符串中最多数目的子序列
  • Qt 窗口类的继承关系和作用
  • 语言模型发展史
  • 戴尔PowerEdge R840服务器亮黄灯 不开机