vue2 条形码 打印3*5的标签,打印标签

效果图


1:npm install jsbarcode
npm install vue-print-nb
2:main.js 引入
import Print from 'vue-print-nb'

Vue.use(Print)
3:

<template>
  <div>
    <el-dialog
      :visible.sync="visible"
      width="640px"
      title="打印"
      @closed="closeIng"
    >
      <!-- 打印内容 -->
      <div ref="printContent" id= "printContent" class="printContent">
       
          <svg id="barcodeContainer1" ref="barcodeContainer1" style="display: block;"></svg>
<!-- <svg id="barcodeContainer2" ref="barcodeContainer2" style="display: block;"></svg>
          <svg id="barcodeContainer3" ref="barcodeContainer3" style="display: block;"></svg>
          <svg id="barcodeContainer4" ref="barcodeContainer4" style="display: block;"></svg>
          <svg id="barcodeContainer5" ref="barcodeContainer5" style="display: block;"></svg>
          <svg id="barcodeContainer6" ref="barcodeContainer6" style="display: block;"></svg>
          <svg id="barcodeContainer7" ref="barcodeContainer7" style="display: block;"></svg>
          <svg id="barcodeContainer8" ref="barcodeContainer8" style="display: block;"></svg>
          <svg id="barcodeContainer9" ref="barcodeContainer9" style="display: block;"></svg> -->
          <!-- <img ref="barcodeContainer1" id="barcodeContainer1" style="display: block;"/> -->
         
      </div>
      
      <div slot="footer" >
        <el-button v-print="print"  type="primary" size="small" 
          >打印</el-button
        >
        <el-button @click="visible = false" size="small">取消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import JsBarcode from "jsbarcode";
export default {
  components: { },
  data() {
    return {
      visible: false,

//有些不需要的可以去掉
      print: {
        id: "printContent",
        popTitle: "", // 打印配置页上方标题
        extraHead: "", //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
        preview: false, // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
        previewTitle: "", // 打印预览的标题(开启预览模式后出现),
        previewPrintBtnLabel: "", // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
        zIndex: "", // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
        previewBeforeOpenCallback() {}, //预览窗口打开之前的callback(开启预览模式调用)
        previewOpenCallback() {}, // 预览窗口打开之后的callback(开启预览模式调用)
        beforeOpenCallback() {}, // 开启打印前的回调事件
        openCallback() {
        }, // 调用打印之后的回调事件
        closeCallback() {}, //关闭打印的回调事件(无法确定点击的是确认还是取消)
        url: "",
        standard: "",
        extraCss: "",
      },
    };
  },
mounted(){
this.init();
},
  methods: {
    
    init() {
               const paperWidth = 76.2; // 3 inches in mm
                const paperHeight = 127; // 5 inches in mm
                const barcodeOptions = {
                format: 'CODE128',
                width:  2, // 根据纸张宽度调整条形码宽度
                height: 200, // 根据纸张高度调整条形码高度
                displayValue: true,
              };
              const barcodeContainer = document.getElementById("barcodeContainer1");
              barcodeContainer.style.width = `${paperWidth * 1.1}mm`;  // 90% of paper width
              barcodeContainer.style.height = `${paperHeight * 1}mm`;  // 70% of paper height
              JsBarcode("#barcodeContainer1", "121242457", barcodeOptions);
             // JsBarcode("#barcodeContainer2", "121242456", barcodeOptions);
              // JsBarcode("#barcodeContainer3", "121242455", barcodeOptions);
              // JsBarcode("#barcodeContainer4", "121242454", barcodeOptions);
              // JsBarcode("#barcodeContainer5", "121242453", barcodeOptions);
              // JsBarcode("#barcodeContainer6", "121242452", barcodeOptions);
              // JsBarcode("#barcodeContainer7", "121242451", barcodeOptions);
              // JsBarcode("#barcodeContainer8", "121242450", barcodeOptions);
              // JsBarcode("#barcodeContainer9", "121242458", barcodeOptions);
            
       
    },
  },
};
</script>

<style scoped>

@media print {
  @page {
    size: 3in 5in;
    margin: 0;
  }
  #barcodeContainer1 {
    display: block;
    margin: auto;
    max-width: 110%;
    max-height: 100%;
  }
 .printContent{
   width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.25in;
    box-sizing: border-box;
    margin-top: 170px;
 } 
 

  svg {
    max-width: 110%;
    max-height: 100%;
  }

}
</style>

注意:主要是在这个margin-top的属性,不加的话打印出来就是空白的。

想要验证的话可以把注释的打开,多建立几个就知道当前打印的位置了,

.printContent{   

    margin-top: 170px;

 }

如果要调取方法或者变量其它变量得话,把这方法改成箭头函数  比如

beforeOpenCallback() {} 修改成 beforeOpenCallback:()=> {}

### 回答1: Vue动态生成条码标签打印模板可视化可以通过以下步骤实现: 1. 首先,需要使用Vue框架搭建一个项目,可以使用Vue CLI来创建一个新的项目。 2. 在Vue项目中,可以使用第三方组件库来实现可视化的界面设计,例如Element UI或Vuetify。通过这些组件库,可以方便地创建表格、表单和布局等元素。 3. 在Vue组件中,可以使用JavaScript库来生成条码标签。例如,可以使用JsBarcode库来生成条码图像,该库可以根据输入的数据生成各种类型的条码,如Code 39、Code 128等。将生成的条码图像添加到Vue组件中,并根据需要进行样式调整。 4. 在Vue组件中,可以通过表单输入或者从后端获取数据来生成条码标签。用户可以在可视化界面中输入条码相关信息,然后点击生成按钮来生成条码标签。可以使用Vue的数据绑定功能,将用户输入的数据与条码生成的相关参数进行关联,确保生成的条码标签与用户输入的数据一致。 5. 在Vue组件中,可以实现打印功能。可以使用浏览器提供的打印功能,通过JavaScript代码调用浏览器的打印API来实现打印功能。在进行打印前,可以设置打印样式,并将需要打印的内容添加到打印队列中。 6. 最后,在可视化界面中,可以通过添加按钮或菜单来触发打印功能。用户可以选择需要打印的条码标签,然后点击打印按钮来打印条码标签。 通过以上步骤,可以实现Vue动态生成条码标签打印模板可视化。用户可以方便地在可视化界面中输入相关信息,生成条码标签,并通过打印功能将生成的条码标签打印出来。这种可视化的方式可以提高工作效率,减少人工操作的繁琐性。 ### 回答2: Vue 是一种用于构建交互式用户界面的 JavaScript 框架。它提供了一种简洁的方式来创建动态生成条码标签打印模板的可视化视图。 首先,我们可以使用 Vue 组件来创建一个条码标签模板。该模板可以包含动态生成条码的逻辑,以及需要打印标签样式。 为了动态生成条码,我们可以使用第三方库,如 jsbarcode。这个库提供了一个简单的 API 来生成各种类型的条码,例如一维码和二维码。我们可以在 Vue 组件中调用该库的方法,传递所需的信息以生成条码。 在可视化方面,Vue 提供了一种响应式的数据绑定机制,以及一个强大的模板语法。我们可以使用这些特性来实现动态更新条码标签的可视化效果。例如,我们可以使用 v-for 指令来循环生成多个条码标签,根据数据源动态渲染每个标签的内容。 为了打印模板,我们可以使用第三方库,如 jsPDF。这个库提供了一个用于生成 PDF 文件的 API,我们可以在 Vue 组件中调用该库的方法,传递待打印内容和样式参数,生成 PDF 文件,然后将其下载或打印出来。 总的来说,Vue 可以帮助我们以一种可视化的方式动态生成条码标签,并提供了丰富的工具和库来处理打印模板的需求。该框架的简洁性和灵活性使得开发者可以轻松地实现这些功能,并为用户提供优雅而高效的界面体验。 ### 回答3: Vue是一种流行的JavaScript框架,它可以用于构建现代化的web应用程序。在Vue中动态生成条码标签的方法有多种,下面将介绍一种实现方式并实现可视化打印模板。 首先,我们可以使用一个开源的JavaScript库叫做JsBarcode来生成条码。我们可以通过在Vue组件中引入该库,并传入相应的数据来动态生成条码。 在Vue组件中,我们可以使用一个data属性来存储条码数据,并通过Vue的双向绑定来显示和更新该数据。 在模板中,我们可以使用一个<input>元素来输入条码数据,并使用一个<button>元素来触发生成条码的方法。当用户点击按钮时,我们可以获取<input>元素的值,并将其传递给JsBarcode库来生成条码。 在生成条码后,我们可以使用一个<img>元素来显示生成的条码图片。 此外,对于打印模板的可视化,我们可以使用Vue的计算属性和条件渲染来根据不同的所需显示和隐藏相应的组件或元素,例如显示条码和打印按钮。 当用户点击打印按钮时,我们可以使用window.print()方法来打印当前页面上的内容。 通过以上步骤,我们可以实现一个Vue动态生成条码标签的可视化打印模板。在该模板中,用户可以输入条码数据,点击按钮生成条码并将其显示出来,最后可以选择打印标签。这样就实现了一个功能完成的Vue动态生成条码标签打印模板。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值