1.0.9 • Published 4 months ago

lodop-print-designer v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

lodop-print-designer

关于此插件

lodop-print-designer(基于kr-print-designer) 只是为了方便我在vue项目中使用,所以以此命名。

由于kr-print-designer最后一次更新时间为2021年,因为我需要的一些功能原插件并没有,基于此我进行了二次开发。

简介

一个基于 Vue2、ElementUi、C-Lodop 的打印模板设计器。实现打印模板的设计、预览和打印功能。示例

安装

Vue 项目中引用该组件

npm install lodop-print-designer

打印功能基于 C-Lodop 打印控件,需前往下载

引入

main.js

import Vue from "vue";
import LodopPrintDesigner from "lodop-print-designer";
import "lodop-print-designer/lib/lodop-print-designer.css";

Vue.use(LodopPrintDesigner);

demo.vue

<template>
  <div id="app">
    <lodop-print-designer
      :temp-value="value"
      :widget-options="widgets"
      :lodop-license="licenseInfo"
      @save="handleSave"
    />
  </div>
</template>

lodop 打印/预览及设置 lodop 注册信息方法使用

// 直接打印
this.$lodop.print(temp, data, beforePrintMethod);

// 预览打印内容
this.$lodop.preview(temp, data);

// 预览打印模板
this.$lodop.previewTemp(temp);

// 设置Lodop产品注册信息
this.$lodop.setLicenses(licenseInfo);

// 获取打印机列表,可根据IP获取远程电脑上的打印机
ip参数为选填,默认为本机127.0.0.1
this.$lodop.getPrinters(ip).then(res=> {
  console.log('打印机列表--->', res)
})

Attributes

参数说明类型默认值
tempValue模板对象Object;
widgetOptions模板设计选项配置Array[]

tempValue 参数详解

参数示例:

{
  title: 'demo',
  width: 750,
  height: 550,
  pageWidth: 750,
  pageHeight: 550,
  tempItems: [],
}

参数说明:

tempValue 为打印模板对象, 对象中参数具体解析如下:

tempValue:
参数说明类型可选值默认值
title模板名称String————
width模板宽度Number——750
height模板高度Number——550
pageWidth模板纸张宽度(mm)Number——750
pageHeight模板纸张高度(mm)Number——550
tempItems模板打印项内容Array——[]

widgetOptions 参数详解

参数示例:

[
  {
    type: "braid-txt",
    isEdit: true,
    title: "自定义文本",
    value: "自定义文本",
    defaultValue: "自定义文本"
  },
  {
    type: "vertical-line",
    title: "竖线",
    name: ""
  },
  {
    type: "horizontal-line",
    title: "横线",
    name: ""
  },
  {
    type: "braid-txt",
    title: "当前时间",
    value: "{YYYY-MM-DD HH:mm:ss}",
    defaultValue: '',
    width: 150,
    height: 20,
    name: "_getNowTime"
  },  
  {
    type: "braid-txt",
    isEdit: false,
    title: "公司名称",
    value: "{公司名称}",
    defaultValue: "九州科瑞",
    name: "companyName"
  },
  {
    type: "bar-code",
    title: "订单编号(条码)",
    value: "{orderNumber}",
    defaultValue: "1234567890",
    name: "orderNumber"
    lodopStyle: { QRCodeVersion: '1', QRCodeErrorLevel: 'L' },
  },
  {
    type: "braid-html",
    title: "分页",
    value: "{第##页/共##页}",
    defaultValue:
      "<font ><span tdata='pageNO'>第##页</span>/<span tdata='pageCount'>共##页</span></font>"
  },
  {
    type: "braid-image",
    title: "logo",
    value: "http://192.168.7.229/syy/file/files/view/5f9fb42dabebb4049ffbd019"
  },
  {
    type: "braid-table",
    title: "商品明细",
    name: "details",
    value: "{details}",
    defaultValue: [
      {
        productName: "苹果ipone11pro",
        skuName: "iphone11pro256g",
        specModel: "165L",
        quantity: 3,
        price: "12.00"
      },
      {
        productName: "苹果ipone11pro",
        skuName: "iphone11pro124g",
        specModel: "165L",
        quantity: 3,
        price: "12.00"
      }
    ],
    columnsAttr: [
      {
        title: "序号",
        value: "{序号}",
        name: "_seq"
      },
      {
        title: "产品名称",
        value: "{产品名称}",
        name: "productName"
      },
      {
        title: "sku名称",
        value: "{sku名称}",
        name: "skuName"
      },
      {
        title: "规格型号",
        value: "{规格型号}",
        name: "specModel"
      },
      {
        title: "数量",
        value: "{数量}",
        name: "quantity"
      },
      {
        title: "单价",
        value: "{单价}",
        name: "price"
      }
    ]
  }
];

参数说明:

widgetOptions 为设计打印模板的打印项配置, 打印项有多种类型,各种打印项参数具体解析如下:

braid-txt

Attributes:
参数说明类型可选值默认值
type模板类型Stringbraid-txt / braid-table / braid-html / braid-image / bar-code / horizontal-line / vertical-line——
isEdit是否可编辑Booleantrue / false——
dragable是否可拖拽Booleantrue / falsetrue
resizable尺寸是否可变Booleantrue / falsetrue
width打印项宽度(px)Number——120
height打印项高度(px)Number——60
left左偏移量(px)Number——50
top上偏移量(px)Number——0
title打印项名称String————
value打印项内容String————
defaultValue打印项默认内容String————
name动态打印项数据名称(对应打印数据 key-name)String支持路径嵌套 'a.b.c'''
lodopStyleLODOP 默认打印项样式Object——{}
style打印项样式Object——{}
Style:
参数说明类型可选值默认值
zIndex层级Number——0
FontSize字体大小(pt)Number——9
FontColor字体颜色String——"#000000"
Bold字体是否加粗Booleantrue / false(是 / 否)false
Italic字体是否设置斜体Booleantrue / false(是 / 否)false
Underline字体是否设置下划线Booleantrue / false(是 / 否)false
Alignment文字对齐方式String"left" / "center" / "right"(左靠齐 / 居中/ 右靠齐)left
ItemType打印项类型Number0 / 1 / 2 / 3 / 4(普通项 / 页眉页脚/ 页号项/ 页数项/ 多页项)0

braid-image

Attributes:
参数说明类型可选值默认值
type模板类型Stringbraid-txt / braid-table / braid-html / braid-image / bar-code / horizontal-line / vertical-line——
isEdit是否可编辑Booleantrue / falsefalse
dragable是否可拖拽Booleantrue / falsetrue
resizable尺寸是否可变Booleantrue / falsetrue
width打印项宽度(px)Number——120
height打印项高度(px)Number——60
left左偏移量(px)Number——50
top上偏移量(px)Number——0
title打印项名称String————
value图片路劲String————
defaultValue图片默认路劲String————
name动态打印项数据名称(对应打印数据 key-name)String——''
lodopStyleLODOP 默认打印项样式Object——{}
style打印项样式Object——{}
Style:
参数说明类型可选值默认值
zIndex层级Number——0
ItemType打印项类型Number0 / 1 / 2 / 3 / 4(普通项 / 页眉页脚/ 页号项/ 页数项/ 多页项)0

braid-html

Attributes:
参数说明类型可选值默认值
type模板类型Stringbraid-txt / braid-table / braid-html / braid-image / bar-code / horizontal-line / vertical-line——
isEdit是否可编辑Booleantrue / falsefalse
dragable是否可拖拽Booleantrue / falsetrue
resizable尺寸是否可变Booleantrue / falsetrue
width打印项宽度(px)Number——120
height打印项高度(px)Number——60
left左偏移量(px)Number——50
top上偏移量(px)Number——0
title打印项名称String——"html"
valuehtml 内容String——"html"
defaultValue默认 htmlString——"html"
name动态打印项数据名称(对应打印数据 key-name)String——''
lodopStyleLODOP 默认打印项样式Object——{}
style打印项样式Object——{}
Style:
参数说明类型可选值默认值
zIndex层级Number——0
ItemType打印项类型Number0 / 1 / 2 / 3 / 4(普通项 / 页眉页脚/ 页号项/ 页数项/ 多页项)0
AutoHeight是否设置自动高度Booleantrue / false(是 / 否)0
BottomMargin打印项距离纸张的下边距(mm)Number——0

braid-html

Attributes:
参数说明类型可选值默认值
type模板类型Stringbraid-txt / braid-table / braid-html / braid-image / bar-code / horizontal-line / vertical-line——
isEdit是否可编辑Booleantrue / falsefalse
dragable是否可拖拽Booleantrue / falsetrue
resizable尺寸是否可变Booleantrue / falsetrue
width打印项宽度(px)Number——240
height打印项高度(px)Number——60
left左偏移量(px)Number——50
top上偏移量(px)Number——10
title打印项名称String——"表格"
value表格数据Array——[]
defaultValue表格默认数据Array——[]
columnsAttr表格可选列配置Array——[]
name动态打印项数据名称(对应打印数据 key-name)String——''
lodopStyleLODOP 默认打印项样式Object——{}
style打印项样式Object——{}
Style:
参数说明类型可选值默认值
zIndex层级Number——0
FontSize字体大小(pt)Number——9
FontColor字体颜色String——"#000000"
BorderColor边框颜色String——"#000000"
Alignment文字对齐方式String"left" / "center" / "right"(左靠齐 / 居中/ 右靠齐)1
AutoHeight是否设置自动高度Booleantrue / false(是 / 否)0
BottomMargin打印项距离纸张的下边距(mm)Number——0
columnsAttr:
参数说明类型可选值默认值
title表格列名称String————
value表格列数据String————
name动态打印项数据名称(对应打印数据 key-name)String————

bar-code

Attributes:
参数说明类型可选值默认值
type模板类型Stringbraid-txt / braid-table / braid-html / braid-image / bar-code / horizontal-line / vertical-line——
isEdit是否可编辑Booleantrue / falsefalse
dragable是否可拖拽Booleantrue / falsetrue
resizable尺寸是否可变Booleantrue / falsetrue
width打印项宽度(px)Number——120
height打印项高度(px)Number——60
left左偏移量(px)Number——50
top上偏移量(px)Number——0
title打印项名称String——"条码"
valuehtml 内容String——"1234567890"
defaultValue默认 htmlString——"1234567890"
name动态打印项数据名称(对应打印数据 key-name)String——''
lodopStyleLODOP 默认打印项样式Object——{}
style打印项样式Object——{}
Style:
参数说明类型可选值默认值
zIndex层级Number——0
FontSize字体大小(pt)Number——false
ShowBarText是否显示条码值Booleanfalse / true(不显示 / 显示)0
codeType条码类型Number'128A' / '128B' / '128C' / '128Auto' / 'EAN8' / 'EAN13' / 'EAN128A' / 'EAN128B' / 'EAN128C' / 'Code39' / '39Extended' / '2_5interleaved' / '2_5industrial' / '2_5matrix' / 'UPC_A' / 'UPC_E0' / 'UPC_E1' / 'UPCsupp2' / 'UPCsupp5' / 'Code93' / '93Extended' / 'MSI' / 'PostNet' / 'Codabar'/ 'QRCode'/ 'PDF417'"Code39"
ItemType打印项类型Number0 / 1 / 2 / 3 / 4(普通项 / 页眉页脚/ 页号项/ 页数项/ 多页项)0

Events

事件名称说明回调参数
save点击保存时触发设计后的模板对象

Methods

方法名称说明参数
initTemp手动初始化模板数据Function(tempValue: object, widgetOptions:widgetOptions)

\$lodop 对象 Methods

名称说明参数
print对数据和模板解析,实现打印,打印之前会执回调函数Function(temp: object, data:array, beforePrintMethod:Function)
preview对数据和模板解析,实现打印内容的预览Function(temp: object, data:array)
previewTemp对模板进行预览Function(temp: object )
setLicenses设置 Lodop 软件产品注册信息Function(licenseInfo: object )
getPrinters获取 当前/远程 电脑打印机列表,返回object127.0.0.1

setLicenses 方法详解

回调示例:

let licenseInfo = {
  strCompanyName: "某某某公司",
  strLicense: "******",
  strLicenseA: "",
  strLicenseB: ""
};

// 设置Lodop产品注册信息
this.$lodop.setLicenses(licenseInfo);

licenseInfo 对象值说明:

licenseInfo 为 Lodop 打印软件产品注册信息, 对象中参数具体解析如下:

说明类型可选值默认值
strCompanyName注册单位名称String————
strLicense主注册号String————
strLicenseA附加注册号 AString————
strLicenseB附加注册号 BString————
1.0.9

4 months ago

1.0.8

9 months ago

1.0.7

10 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago