Vue3使用vue-print-nb插件打印功能

news2024/11/26 4:54:43

 插件官网地址https://www.npmjs.com/package/vue-print-nb

 效果展示:

打印效果

  1.  根据不同的Vue版本安装插件

    //Vue2.0版本安装方法
    npm install vue-print-nb --save
    pnpm install vue-print-nb --save
    yarn add vue-print-nb
    
    
    //Vue3.0版本安装方法:
    npm install vue3-print-nb --save
    pnpm install vue3-print-nb --save
    yarn add vue3-print-nb
  2. 全局挂载

    //在mian.ts文件中加入
    import Print from 'vue-print-nb'
    Vue.use(Print)
  3. 打印页面的样式

            <!--        打印的内容-->
            <div id="printTest">
              <div class="box_printTest">
                <el-row>
                  <el-col :span="13"
                    ><div class="grid-content ep-bg-purple"
                  /></el-col>
                  <el-col
                    :span="11"
                    style="
                      font-size: 25px;
                      color: rgb(51, 51, 153);
                      font-weight: 600;
                    "
                    >COMMERCIAL INVOICE
                  </el-col>
                </el-row>
                <el-row>
                  <el-col
                    :span="24"
                    style="font-size: 15px; color: #000000; font-weight: bold"
                    >XIAMEN VIGORTEAM TRADING CO.,LTD</el-col
                  >
                </el-row>
    
                <el-row>
                  <el-col :span="14" style="font-size: 13px; color: #303133"
                    >1501-1502 GOLDEN COAST PLAZA,NO.99 LUJIANG
                    ROAD,XIAMEN,CHINA</el-col
                  >
                  <el-col :span="5">
                    <el-row>Date:</el-row>
                    <el-row>Invoice #:</el-row>
                    <el-row>Purchase Order #</el-row>
                    <el-row>L/C #</el-row>
                  </el-col>
                  <el-col :span="5">
                    <el-row class="demo">July 24,2023</el-row>
                    <el-row class="demo">WBG-123456</el-row>
                    <el-row class="demo">JDG-123456</el-row>
                    <el-row class="demo">BLG-123456</el-row>
                  </el-col>
                </el-row>
                <br />
    
                <el-row>
                  <el-col :span="10">
                    <div style="background-color: rgb(51, 51, 153)">
                      <span style="color: white; font-weight: bold">Bill To:</span>
                    </div>
                  </el-col>
                  <el-col :span="4" />
                  <el-col :span="10"
                    ><div style="background-color: rgb(51, 51, 153)">
                      <span style="color: white; font-weight: bold">Ship To:</span>
                    </div></el-col
                  >
                </el-row>
    
                <el-row>
                  <el-col
                    :span="10"
                    style="font-size: 15px; color: #000000; font-weight: bold"
                    >MR PRICE HOME ,A DIVISION OF MR PRICE GROUP LIM</el-col
                  >
                  <el-col :span="4" />
                  <el-col
                    :span="10"
                    style="font-size: 15px; color: #000000; font-weight: bold"
                    >MR PRICE HOME ,A DIVISION OF MR PRICE GROUP Wen</el-col
                  >
                </el-row>
                <div style="height: 10px" />
    
                <el-row>
                  <el-col :span="10" style="font-size: 13px; color: #303133"
                    >HEAD OFFICE,UPPER LEVEL NORTH CONCOURSE DURBAN STATION ,65
                    MASABALALA YENGWA AVENUE DURBAN,SOUTH AFRICA</el-col
                  >
                  <el-col :span="4" />
                  <el-col :span="10" style="font-size: 13px; color: #303133"
                    >HEAD OFFICE,UPPER LEVEL NORTH CONCOURSE,DURBAN STATION ,65
                    MASABALALA YENGWA AVENUE DURBAN SOUTH AFRICA</el-col
                  >
                </el-row>
                <br />
                <br />
    
                <el-row>
                  <el-col :span="24">
                    <div style="background-color: rgb(51, 51, 153)">
                      <span style="color: white; font-weight: bold"
                        >Shipment Information</span
                      >
                    </div>
                  </el-col>
                </el-row>
                <div style="height: 10px" />
    
                <el-row>
                  <el-col :span="6" style="font-size: 13px; color: #303133"
                    >Country of Origin</el-col
                  >
                  <el-col
                    :span="18"
                    style="font-size: 13px; color: #303133; border: 1px solid #333"
                    >China</el-col
                  >
                </el-row>
                <div style="height: 10px" />
    
                <el-row>
                  <el-col :span="6" style="font-size: 13px; color: #303133"
                    >Port of Loading</el-col
                  >
                  <el-col
                    :span="5"
                    style="font-size: 13px; color: #303133; border: 1px solid #333"
                    >TIANJIN,CHINA</el-col
                  >
                  <el-col :span="1" />
                  <el-col :span="6" style="font-size: 13px; color: #303133"
                    >Port of Destination</el-col
                  >
                  <el-col
                    :span="6"
                    style="font-size: 13px; color: #303133; border: 1px solid #333"
                    >DURBAN,SOUTH,AFRICA</el-col
                  >
                </el-row>
                <div style="height: 10px" />
    
                <el-row>
                  <el-col :span="6" style="font-size: 13px; color: #303133"
                    >Shiping Method</el-col
                  >
                  <el-col
                    :span="5"
                    style="font-size: 13px; color: #303133; border: 1px solid #333"
                    >FOB</el-col
                  >
                </el-row>
                <!--            打印的表格-->
                <div>
                  <el-table
                    :data="baseProperty.tableData"
                    :span-method="arraySpanMethod"
                    border
                    :header-cell-style="{
                      background: '#333399',
                      color: '#ffffff'
                    }"
                    :cell-style="{ color: '#000000' }"
                    style="width: 100%; margin-top: 20px"
                  >
                    <el-table-column
                      prop="id"
                      align="center"
                      style="color: black"
                      label="SHIPPING MARKS"
                      width="150"
                    />
                    <el-table-column
                      prop="name"
                      align="center"
                      label="DESCRIPTION OF GOODS"
                      width="210"
                    />
                    <el-table-column
                      prop="amount1"
                      align="center"
                      label="QTY"
                      width="120"
                    />
                    <el-table-column
                      align="center"
                      prop="amount2"
                      label="UNIT PRICE"
                      width="120"
                    />
                    <el-table-column
                      prop="amount3"
                      align="center"
                      label="AMOUNT"
                      width="120"
                    />
                  </el-table>
                </div>
    
                <el-row>
                  <el-col :span="5" />
                  <el-col :span="11" style="font-size: 13px; color: #303133"
                    >产地: 廊坊</el-col
                  >
                  <el-col
                    :span="5"
                    style="
                      font-size: 13px;
                      color: white;
                      background-color: #003366;
                      font-weight: bold;
                    "
                    >Total</el-col
                  >
                  <el-col
                    :span="3"
                    style="
                      font-size: 13px;
                      color: white;
                      background-color: #003366;
                      font-weight: bold;
                    "
                    >USD 10920.00</el-col
                  >
                </el-row>
                <br />
                <el-row>
                  <el-col :span="24">
                    <div style="background-color: rgb(51, 51, 153)">
                      <span style="color: white; font-weight: bold"
                        >Summary Information</span
                      >
                    </div>
                  </el-col>
                </el-row>
    
                <el-row>
                  <el-col
                    :span="16"
                    style="
                      font-size: 13px;
                      color: #303133;
                      border-bottom: 1px solid #333;
                      border-right: 1px solid #333;
                      border-left: 1px solid #333;
                    "
                  >
                    <div
                      style="height: 100%; text-align: center; line-height: 100px"
                    >
                      TOTAL: U.SDOLLARS TEN THOUSAND NINE HUNDRED AND TWENTY ONLY
                    </div>
                  </el-col>
                  <el-col
                    :span="8"
                    style="
                      font-size: 13px;
                      color: #303133;
                      border-bottom: 1px solid #333;
                      border-right: 1px solid #333;
                    "
                  >
                    <el-row style="border-bottom: 1px solid #333">
                      <el-col :span="12"
                        ><span style="font-weight: bold"> Total QTY </span></el-col
                      >
                      <el-col :span="12">
                        <div style="text-align: center">1680PCS</div>
                      </el-col>
                    </el-row>
                    <el-row style="border-bottom: 1px solid #333">
                      <el-col :span="12"
                        ><span style="font-weight: bold"> Total CBM </span></el-col
                      >
                      <el-col
                        :span="12"
                        style="background-color: rgb(192, 192, 192)"
                      >
                        <div style="text-align: center">60.06CBM</div>
                      </el-col>
                    </el-row>
    
                    <el-row>
                      <el-col :span="12"
                        ><span style="font-weight: bold"> Container </span></el-col
                      >
                      <el-col :span="12">
                        <div style="text-align: right">*20°FCL</div>
                      </el-col>
                    </el-row>
    
                    <el-row>
                      <el-col :span="12" />
                      <el-col
                        :span="12"
                        style="background-color: rgb(192, 192, 192)"
                      >
                        <div style="text-align: right">*40°FCL</div>
                      </el-col>
                    </el-row>
    
                    <el-row>
                      <el-col :span="12" />
                      <el-col :span="12">
                        <div style="text-align: right">*40°HQ&nbsp;</div>
                      </el-col>
                    </el-row>
    
                    <el-row>
                      <el-col :span="12" />
                      <el-col
                        :span="12"
                        style="background-color: rgb(192, 192, 192)"
                      >
                        <div style="text-align: right">*45°HQ&nbsp;</div>
                      </el-col>
                    </el-row>
                  </el-col>
                </el-row>
              </div>
            </div>
    
    
    
    
    //表格数据
    const baseProperty = reactive({
      userCode: "",
      dragBtnBC1: "#e5e4e9",
      dragBtnBC2: "#e5e4e9",
      searchTab: "Regular Data",
      openSearch: false,
      topDivShow: true,
      buttonTab: "Split Shipping Plan",
      topDivShowFull: false,
      loading: false,
      subSkuList: [],
      warehouseList: [],
      overseasWarehouseList: [],
      shippingPlanMethodList: [],
      fobPortList: [],
      leftStyle: "width: 73%-10px",
      rightStyle: "width: 27%; height: 100%",
      rightShow: false,
      show: false,
      searchForm: {
        shippingPlanOrder: "",
        status: "",
        page: 1,
        limit: 10
      },
      tableData: [
        {
          id: "12987122",
          name: "A03-01-PP001\n" + "H.S.CODE:9401690090\n" + "产品尺寸:53*53*51",
          amount1: "682PCS",
          amount2: "USD 6.50",
          amount3: "USD 4420.00"
        },
        {
          id: "12987123",
          name: "A03-01-PP001\n" + "H.S.CODE:9401690090\n" + "产品尺寸:53*53*51",
          amount1: "700PCS",
          amount2: "USD 6.50",
          amount3: "USD 4550.00"
        },
        {
          id: "12987124",
          name: "A03-01-PP001\n" + "H.S.CODE:9401690090\n" + "产品尺寸:53*53*51",
          amount1: "300PCS",
          amount2: "USD 6.50",
          amount3: "USD 1950.00"
        },
      ]
    });

  4. 打印按钮

    // printTest是需要打印内容的div的id ,并在前面加上#                     
    <el-button
    @click="toPrint(row)"
    v-print="'#printTest'"
    size="default"   
    link
    type="primary"
    >COMMERCIAL INVOICE
    </el-button>

  5. 关于颜色存在偏差的问题

    @media print {
      // 强制打印背景(这样才能打印出背景颜色)    Kris_wen
      * {
        -webkit-print-color-adjust: exact !important;
      }
    }
  6. 去掉页眉页脚

    /* 去掉页眉页脚 */
    @page {
      size: auto;
      margin: 0mm;
    }
  7. 表格最好使用原生的HTML原生的表格,使用element-table会出现分页割断的问题。

  8. 有些数据是要先通过ajax从后端取出,在调用打印方法的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1190892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS Linux 系统镜像

CentOS Linux具有以下特点&#xff1a; 稳定性&#xff1a;CentOS Linux旨在提供一个稳定、可靠的服务器环境&#xff0c;适合用于关键业务应用和生产环境。高效性&#xff1a;CentOS Linux经过优化和调整&#xff0c;可以充分发挥硬件的性能&#xff0c;提高系统的整体效率。…

2023 年最新腾讯官方 QQ 机器人(QQ 群机器人 / QQ 频道机器人)超详细开发教程

注册 QQ 开放平台账号 QQ 开放平台是腾讯应用综合开放类平台&#xff0c;包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理&#xff0c;也就是说你注册了QQ 开放平台&#xff0c;你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。 如何注册 QQ 开放平台账…

element ui:常用的组件使用情况记录

前言 将element ui使用过程中一些常用的组件使用情况记录如下 组件 el-tree树组件 树父子节点成一列显示 没有进行设置之前显示效果 设置之后显示效果 ​​​​ 主要代码如下 <el-treeicon-class"none"expand-on-click-node"false"style"…

【uniapp/uview】Collapse 折叠面板更改右侧小箭头图标

最终效果是这样的&#xff1a; 官方没有给出相关配置项&#xff0c;后来发现小箭头不是 uview 的图标&#xff0c;而是 unicode 编码&#xff0c;具体代码&#xff1a; // 箭头图标 ::v-deep .uicon-arrow-down[data-v-6e20bb40]:before {content: \1f783; }附一个查询其他 u…

HTML+CSS、Vue+less+、HTML+less 组件封装实现二级菜单切换样式跑(含全部代码)

一、HTMLCSS二级菜单 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

蓝桥杯国一,非ACMer选手保姆级经验分享

目录 一、前言二、蓝桥杯简介三、0基础计算机新手小白&#xff0c;赛前如何准备提高自己的获奖率&#xff1f;3.1 每两周参加一次【蓝桥算法双周赛】3.2 多练真题3.3 参加每一场官方校内模拟赛 四、结语 一、前言 hello&#xff0c;大家好&#xff0c;我是大赛哥(弟)&#xff…

2023.11-9 hive数据仓库,概念,架构

目录 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1&#xff09;优点 2&#xff09;缺点 四. Hive 和数据库比较 1&#xff09;查询语言 2&#xff09;数据更新 3&#xff09;执行延迟 4&#xff09;数据规模 五.hive架构流程 六.MetaStore元…

Could not load library libcudnn_cnn_train.so.8, 解决类似问题的思路与方法

完整报错 Could not load library libcudnn_cnn_train.so.8. Error: /home/ai/anaconda3/envs/ai/bin/../lib/libcudnn_ops_train.so.8: undefined symbol: _ZN5cudnn3ops26JoinInternalPriorityStreamEP12cudnnContexti, version libcudnn_ops_infer.so.8 错误原因 该错误其…

Tcl语言:基础入门(一)

Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 Tcl语言是一种脚本语言&#xff0c;类似于Bourne shell(sh)、C shell&#xff08;csh&#xff09;、Bourne-Again Shell(bash)等UNIX shell语言。Shell程序主要作为胶水缝合其他…

[100天算法】-定长子串中元音的最大数目(day 67)

题目描述 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。示例 1&#xff1a;输入&#xff1a;s "abciiidef", k 3 输出&#xff1a;3 解释&#xf…

Excel和Chatgpt是最好的组合。

内容来源&#xff1a;bitfool1 Excel和Chatgpt是最好的组合。 您可以轻松地自动化数据处理。 我向您展示如何在不打字公式的情况下将AI与Excel一起使用&#xff1a; 建立chatgpt 主要目的是使用Chatgpt自动编写Excel宏。 这消除了键入公式的需求&#xff0c;并让您在自然语言…

53基于matlab的Tamura纹理特征提取

基于matlab的Tamura纹理特征提取&#xff0c;包括粗糙度、对比度、方向度、线性度、规则度、粗糙度六种&#xff0c;可替换自己的数据进行特征提取。程序已调通&#xff0c;可直接运行。 53 方向度、线性度、规则度 (xiaohongshu.com)

axios请求的问题

本来不想记录&#xff0c;但是实在没有办法&#xff0c;因为总是会出现post请求&#xff0c;后台接收不到数据的情况,还是记录一下如何的解决的比较好。 但是我使用export const addPsiPurOrder data > request.post(/psi/psiPurOrder/add, data); 下面是封装的代码。后台接…

系列一、Shiro概述

一、概述 Shiro是一款主流的Java安全框架&#xff0c;不依赖任何容器&#xff0c;可以运行在JavaSE 和 JavaEE项目中&#xff0c;它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。 一句话&#xff1a;Shiro是一个用来解决安全管理的系统框架&#x…

洛谷P4185 离线+并查集

好题&#xff0c;发现没有强制在线&#xff0c;可以离线操作 排序之后带集合点数的并查集就好了 #include<bits/stdc.h> using namespace std; const int N 1e510; int n,m; int p[N],sz[N];int find(int x){if(x!p[x])p[x] find(p[x]);return p[x]; } struct Node{in…

【自动控制原理】时域分析法:稳定性分析(稳)、误差分析和计算(准)

文章目录 第3章 时域分析法3.1 基本概念3.2~4 一阶、二阶、高阶系统的时间响应及动态性能3.6 稳定性分析——稳3.6.1. 稳定性的定义3.6.2 稳定性的条件3.6.3 劳斯稳定判据首列出现0&#xff0c;但该行不全为0首列出现0&#xff0c;且该行全为0 3.5 误差分析和计算——准3.5.1稳…

矢量图形编辑软件Boxy SVG mac中文版软件特点

Boxy SVG mac是一款基于Web的矢量图形编辑器&#xff0c;它提供了一系列强大的工具和功能&#xff0c;可帮助用户创建精美的矢量图形。Boxy SVG是一款好用的软件&#xff0c;并且可以在Windows、Mac和Linux系统上运行。 Boxy SVG mac软件特点 简单易用&#xff1a;Boxy SVG的用…

使用sizeof()和strlen()去计算【数组】和【指针】的大小

文章目录 一、知识回顾1、回顾sizeof()、strlen的作用&#xff1a;2、数组和指针3、数组名 二、sizeof()、strlen()的使用区别1、注意区别&#xff1a;2、一维数组与一级指针3、二维数组与二级指针 三、总结回顾 一、知识回顾 1、回顾sizeof()、strlen的作用&#xff1a; siz…

【18】c++11新特性 —>线程同步

线程同步&#xff1a;线程同步就是让多个线程按顺序访问临界区域&#xff0c;只有在当前线程访问临时区结束后&#xff0c;下一个线程才能继续访问。&#xff08;临界区加锁即可&#xff09; #include <iostream> #include <chrono> #include <thread> #inc…

【ZYNQ】裸机 PS + PL 双网口实现之 SDK 程序设计

涉及 lwip 库文件及 ZYNQ 配置相关可参考以下文章&#xff1a; 【ZYNQ】裸机 PS PL 双网口实现之 LWIP 库文件修改 【ZYNQ】裸机 PS PL 双网口实现之 ZYNQ 配置 工程配置 启动 SDK &#xff0c;创建模板工程&#xff0c;配置 BSP。 勾选 lwip141 库。 对 lwip 做如下配置…