• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Vue中使用vue-plugin-hiprint插件进行打印的功能实现

    发布者: Error | 发布时间: 2025-6-16 07:41| 查看数: 66| 评论数: 0|帖子模式

    引言

    hiprint 是一个web 打印的js组件,无需安装软件。支持windows,macOS,linux 系统,支持移动端,PC端浏览器,angular,vue,react 等 分页预览,打印,操作简单,运行快速。预览界面为css+html 。支持数据分组,批量预览。生成pdf,图片更方便
    附上该插件的官方文档 http://hiprint.io/,本文中未提及的功能基本上都能在官网中找到。Gitee链接

    一、安装插件


    1、安装
    1. npm install vue-plugin-hi-print
    2. # 或者
    3. yarn add vue-plugin-hi-print
    复制代码
    在项目入口文件index.html中引入样式文件,按需引入即可。
    1. //在项目的入口文件中引入所需的CDN
    2. <!DOCTYPE html>
    3. <html lang="zh-CN">
    4.   <head>
    5.     <meta charset="utf-8">
    6.     <title>hinnn-hiprint</title>
    7.     <!-- hiprint -->
    8.     <link href="hiprint/css/hiprint.css" rel="external nofollow"  rel="stylesheet">
    9.     <link href="hiprint/css/print-lock.css" rel="external nofollow"  rel="external nofollow"  rel="stylesheet">
    10.     <link href="hiprint/css/print-lock.css" rel="external nofollow"  rel="external nofollow"  media="print" rel="stylesheet">
    11.   </head>
    12.   <body>
    13.     <!-- 加载 hiprint 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    14.     <!-- polyfill.min.js解决浏览器兼容性问题v6.26.0-->
    15.     <script src="hiprint/polyfill.min.js"></script>
    16.     <!-- hiprint 核心js-->
    17.     <script src="hiprint/hiprint.bundle.js"></script>
    18.     <!-- 条形码生成组件-->
    19.     <script src="hiprint/plugins/JsBarcode.all.min.js"></script>
    20.     <!-- 二维码生成组件-->
    21.     <script src="hiprint/plugins/qrcode.js"></script>
    22.     <!-- 调用浏览器打印窗口helper类,可自行替换-->
    23.     <script src="hiprint/plugins/jquery.hiwprint.js"></script>
    24.   </body>
    25. </html>
    复制代码
    2、页面中引入

    全局引入
    1. // main.ts
    2. import { hiPrintPlugin } from 'vue-plugin-hiprint'
    3. app.use(hiPrintPlugin)
    复制代码
    1. // 局部引入
    2. import { hiPrintPlugin } from 'vue-plugin-hiprint'
    复制代码
    二、打印html元素
    1. <template>
    2.         <div  ref="printRef" style="height: 100%;width: 100%;"></div>
    3. </template>
    4. <script lang="ts" setup name="mesFanTwins">
    5. import {hiprint} from 'vue-plugin-hiprint';
    6. const printRef = ref();
    7. const print()=()=>{
    8.     //初始化
    9.     hiprint.init()
    10.     const hiprintTemplate = new hiprint.PrintTemplate()
    11.     // printByHtml为预览打印
    12.     hiprintTemplate.printByHtml(printRef.value,{});
    13. }

    14. </script>
    复制代码
    三、打印配置项
    1. //初始化
    2. hiprint.init();
    复制代码
    1. //创建实例
    2. var hiprintTemplate = new hiprint.PrintTemplate();//默认添加A4大小的面板
    3. var panel = hiprintTemplate.addPrintPanel({ width: 100, height: 130, paperFooter: 340, paperHeader: 10 });//参数请参考下方列表
    复制代码
    名称类型描述默认值widthnumber宽度(毫米)A4宽heightnumber高度(毫米)A4高paperTypestringA3,A4等 自定义则为空A4paperHeadernumber页眉线top值(单位pt),默认0,
    1. 可空
    复制代码
    0paperFooternumber页尾线top值(单位pt),默认等于纸张高度对应的pt值,
    1. 可空
    复制代码
    纸张高ptpaperNumberLeftnumber页码left(pt) 默认纸张宽pt-20
    1. 可空
    复制代码
    张宽pt-20paperNumberTopnumber页码top(pt) 默认纸张高pt-20
    1. 可空
    复制代码
    高pt-20paperNumberDisabledboolean禁用页码。默认false
    1. 可空
    复制代码
    falserotateboolean旋转 比如A4纸旋转 上面宽和高需要对换 默认false
    1. 可空
    复制代码
    false
    1. //根据实际需要进行选择,其他配置见官网
    2. //文本
    3. panel.addPrintText({ options: { width: 140, height: 15, top: 20, left: 20, title: 'hiprint插件手动添加text', textAlign: 'center' } });
    4. //条形码
    5. panel.addPrintText({ options: { width: 140, height: 35, top: 40, left: 20, title: '123456', textType: 'barcode' } });
    6. //二维码
    7. panel.addPrintText({ options: { width: 35, height: 35, top: 40, left: 165, title: '123456', textType: 'qrcode' } });
    8. //长文本
    9. panel.addPrintLongText({ options: { width: 180, height: 35, top: 90, left: 20, title: '长文本:hiprint是一个很好的webjs打印,浏览器在的地方他都可以运行' } });
    10. //表格
    11. panel.addPrintTable({ options: { width: 252, height: 35, top: 130, left: 20, content: $('#testTable').html() } });
    12. //Html
    13. panel.addPrintHtml({ options: { width: 140, height: 35, top: 180, left: 20, content:'' } });
    14. //竖线//不设置宽度
    15. panel.addPrintVline({ options: { height: 35, top: 230, left: 20 } });
    16. //横线 //不设置高度
    17. panel.addPrintHline({ options: { width: 140, top: 245, left: 120 } });
    18. //矩形
    19. panel.addPrintRect({ options: { width: 35, height: 35, top: 230, left: 60 } });
    20. //打印设计
    21. hiprintTemplate.design('#hiprint-printTemplate');
    复制代码
    四、打印JSON模板

    新建panel.js文件,该文件为JSON模板,后续需要见数据填入,示例内容如下,可以根据自己需要实现的效果进行修改。
    1. export const panel = {
    2.     "panels": [
    3.       {
    4.         "index":0,
    5.         "height":20,
    6.         "width":20,
    7.                 "paperHeader":2,
    8.                 "paperFooter":0,
    9.         "paperNumberDisabled":true,
    10.                 "rotate":true,
    11.         "printElements":[{
    12.             "options":{
    13.             "left":4,
    14.             "top":30,
    15.             "height":40,
    16.             "width":40,
    17.             "field": "barcodeNumber",
    18.             "textType":"qrcode"
    19.             },
    20.             "printElementType":{"type":"text"},
    21.           },
    22.         ],
    23.       }]
    24.   }
    复制代码
    1. import { panel } from './panel.js';
    2. import {hiprint} from 'vue-plugin-hiprint';
    3. //将数据以数组方式存入,会根据模板定义的样式来打印
    4. let printList=[]
    5. printList.push({
    6.         barcodeNumber: newfanframecode
    7. })               
    8. hiprint.init();
    9. var hiprintTemplate = new hiprint.PrintTemplate({
    10.         template: panel
    11. });
    12. hiprintTemplate.print(printList);
    复制代码
    五、总结

    以上就是Vue中使用vue-plugin-hiprint插件进行打印的实现步骤的详细内容,更多关于Vue vue-plugin-hiprint打印的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/javascript/339429nfk.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表