5 changed files with 398 additions and 2 deletions
@ -0,0 +1,370 @@ |
|||||
|
<template> |
||||
|
<div id="container"> |
||||
|
<el-row :gutter="12"> |
||||
|
<el-col :offset="8" :span="8"> |
||||
|
<el-card shadow="always"> |
||||
|
<div slot="header" class="clearfix"> |
||||
|
<span>简单实例</span> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<el-form label-width="80px"> |
||||
|
<el-form-item label="菜名"> |
||||
|
<el-input v-model="formData.name"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="条形码"> |
||||
|
<el-input v-model="formData.code"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="页数"> |
||||
|
<el-input-number v-model="formData.number" controls-position="right" :min="1" :max="10"> |
||||
|
</el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="primary" @click="print">生成打印文件</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
|
||||
|
</el-card> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import PrintTemplate from 'print-template' |
||||
|
export default { |
||||
|
name: 'SupplierBankInfoIndex', |
||||
|
data() { |
||||
|
return { |
||||
|
template: null, |
||||
|
formData: { |
||||
|
number: 1, |
||||
|
name: '泡菜肉丝', |
||||
|
code: 'PCRS11886622' |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
this.initPrintTemplate() |
||||
|
}, |
||||
|
methods: { |
||||
|
|
||||
|
initPrintTemplate() { |
||||
|
this.template = new PrintTemplate() |
||||
|
this.template.push({ |
||||
|
name: 'printTemplate', |
||||
|
size: [210, 297], // a4 或 [221,291] |
||||
|
fixed: [ |
||||
|
|
||||
|
{ |
||||
|
type: 'text', |
||||
|
fontWeight: 400, |
||||
|
x: 88, |
||||
|
y: 3, |
||||
|
default: '汇融惠享礼包卡', |
||||
|
fontSize: '5', // 字体大小 |
||||
|
fontFamily: '微软雅黑', // 字体类型 默认 '微软雅黑' |
||||
|
fontWeight: null, // 字体宽度 |
||||
|
fontStyle: 'normal', // 字体样式 normal / 斜体 |
||||
|
maxWidth: null, // 最大换行宽度 |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
color: 'red' // 字体颜色 (1.2.8版本新增) |
||||
|
}, |
||||
|
// 1号 |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 10, |
||||
|
y: 12, |
||||
|
length: 90, |
||||
|
color: 'blue', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 10, |
||||
|
y: 12, |
||||
|
length: 40, |
||||
|
color: 'red', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'p', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 10, |
||||
|
y: 52, |
||||
|
length: 90, |
||||
|
color: 'blue', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 100, |
||||
|
y: 12, |
||||
|
length: 40, |
||||
|
color: 'red', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'p', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 10, |
||||
|
y: 20, |
||||
|
length: 90, |
||||
|
color: 'blue', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 32, |
||||
|
y: 20, |
||||
|
length: 14, |
||||
|
color: 'blue', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'p', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 10, |
||||
|
y: 34, |
||||
|
length: 90, |
||||
|
color: 'blue', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
type: 'text', // 类型 文本 line / text / image / barcode / qrcode |
||||
|
// default: '家庭菜窖-白菜券', // 默认值 \n 换行 或设置maxWidth大小 |
||||
|
x: 30, // x |
||||
|
y: 14, // y |
||||
|
fontSize: '5', // 字体大小 |
||||
|
fontFamily: '微软雅黑', // 字体类型 默认 '微软雅黑' |
||||
|
fontWeight: null, // 字体宽度 |
||||
|
fontStyle: 'normal', // 字体样式 normal / 斜体 |
||||
|
maxWidth: null, // 最大换行宽度 |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
color: 'red' // 字体颜色 (1.2.8版本新增) |
||||
|
}, |
||||
|
{ |
||||
|
type: 'text', // 类型 文本 line / text / image / barcode / qrcode |
||||
|
default: '手机提货:\n扫描下方\n 二维码', // 默认值 \n 换行 或设置maxWidth大小 |
||||
|
x: 14, // x |
||||
|
y: 23, // y |
||||
|
fontSize: '3', // 字体大小 |
||||
|
fontFamily: '微软雅黑', // 字体类型 默认 '微软雅黑' |
||||
|
fontWeight: null, // 字体宽度 |
||||
|
fontStyle: 'normal', // 字体样式 normal / 斜体 |
||||
|
maxWidth: null, // 最大换行宽度 |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
color: 'red' // 字体颜色 (1.2.8版本新增) |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
type: 'text', // 类型 文本 line / text / image / barcode / qrcode |
||||
|
default: '提货券使用说明:\n· 本券概不挂失,不兑换现金\n· 本券提货编码和提货密码为兑换的唯一凭证\n· 手机扫描二维码可查询券卡状态', // 默认值 \n 换行 或设置maxWidth大小 |
||||
|
x: 35, // x |
||||
|
y: 21, // y |
||||
|
fontSize: '3', // 字体大小 |
||||
|
fontFamily: '微软雅黑', // 字体类型 默认 '微软雅黑' |
||||
|
fontWeight: null, // 字体宽度 |
||||
|
fontStyle: 'normal', // 字体样式 normal / 斜体 |
||||
|
maxWidth: null, // 最大换行宽度 |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
color: 'red' // 字体颜色 (1.2.8版本新增) |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
type: 'text', // 类型 文本 line / text / image / barcode / qrcode |
||||
|
default: '提货编码', // 默认值 \n 换行 或设置maxWidth大小 |
||||
|
x: 12, // x |
||||
|
y: 37, // y |
||||
|
fontSize: '3', // 字体大小 |
||||
|
fontFamily: '微软雅黑', // 字体类型 默认 '微软雅黑' |
||||
|
fontWeight: null, // 字体宽度 |
||||
|
fontStyle: 'normal', // 字体样式 normal / 斜体 |
||||
|
maxWidth: null, // 最大换行宽度 |
||||
|
orientation: 'p', // 方向 默认 l 横向 / p 竖向 |
||||
|
color: 'red' // 字体颜色 (1.2.8版本新增) |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
|
||||
|
// 2号 |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 110, |
||||
|
y: 12, |
||||
|
length: 90, |
||||
|
color: 'green', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 110, |
||||
|
y: 12, |
||||
|
length: 40, |
||||
|
color: 'orange', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'p', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 110, |
||||
|
y: 52, |
||||
|
length: 90, |
||||
|
color: 'green', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'l', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
{ |
||||
|
type: 'line', |
||||
|
x: 200, |
||||
|
y: 12, |
||||
|
length: 40, |
||||
|
color: 'orange', // 线段颜色 (1.2.8版本新增) |
||||
|
orientation: 'p', // 方向 默认 l 横向 / p 竖向 |
||||
|
}, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 2, |
||||
|
// y: 12, |
||||
|
// orientation: 'p', // l 横向 / p 竖向 |
||||
|
// length: 110 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 74, |
||||
|
// y: 12, |
||||
|
// orientation: 'p', |
||||
|
// length: 110 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'text', |
||||
|
// x: 10, |
||||
|
// y: 30, |
||||
|
// fontSize: 3, |
||||
|
// default: '菜名' |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 25, |
||||
|
// y: 27, |
||||
|
// orientation: 'p', |
||||
|
// length: 8 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 2, |
||||
|
// y: 35, |
||||
|
// length: 72 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 2, |
||||
|
// y: 27, |
||||
|
// length: 72 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'text', |
||||
|
// x: 10, |
||||
|
// y: 50, |
||||
|
// fontSize: 3, |
||||
|
// default: '二维码' |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 25, |
||||
|
// y: 35, |
||||
|
// orientation: 'p', |
||||
|
// length: 30 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 2, |
||||
|
// y: 65, |
||||
|
// length: 72 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'line', |
||||
|
// x: 2, |
||||
|
// y: 122, |
||||
|
// length: 72 |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'text', |
||||
|
// fontSize: 3.8, |
||||
|
// fontWeight: 700, |
||||
|
// x: 33, |
||||
|
// y: 5, |
||||
|
// default: '标题' |
||||
|
// }, |
||||
|
// { |
||||
|
// type: 'qrcode', |
||||
|
// x: 30, |
||||
|
// y: 38, |
||||
|
// width: 18, |
||||
|
// default: 'https://supervise.yxtsoft.com/lpkapi?code=20231130110815671089' |
||||
|
// } |
||||
|
|
||||
|
], |
||||
|
|
||||
|
data: { |
||||
|
name: { |
||||
|
type: 'text', |
||||
|
x: 30, // x |
||||
|
y: 14, // y |
||||
|
fontSize: '5', // 字体大小 |
||||
|
}, |
||||
|
name2: { |
||||
|
type: 'text', |
||||
|
x: 17, // x |
||||
|
y: 48, // y |
||||
|
fontSize: '3', // 字体大小 |
||||
|
}, |
||||
|
code: { |
||||
|
x: 16, |
||||
|
y: 35, |
||||
|
type: 'qrcode', |
||||
|
default: 'https://supervise.yxtsoft.com/lpkapi?code=20231130110815671089', |
||||
|
width: 13 |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
print() { |
||||
|
let printData = [] |
||||
|
let printUrl = null |
||||
|
for (let index = 0; index < this.formData.number; index++) { |
||||
|
printData.push({ |
||||
|
code: " ", |
||||
|
name: "家庭菜窖-白菜券", |
||||
|
name2: "222222" |
||||
|
}) |
||||
|
} |
||||
|
this.template.print('printTemplate', printData).then(printPdf => { |
||||
|
if (printPdf) { |
||||
|
this.$message.success('生成成功') |
||||
|
printUrl = printPdf.output('bloburi', { |
||||
|
filename: '打印文件' |
||||
|
}) |
||||
|
window.open(printUrl, '_blank') |
||||
|
} else { |
||||
|
this.$message.warring('生成失败') |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
#container { |
||||
|
font-family: 'Avenir', Helvetica, Arial, sans-serif; |
||||
|
-webkit-font-smoothing: antialiased; |
||||
|
-moz-osx-font-smoothing: grayscale; |
||||
|
text-align: center; |
||||
|
color: #2c3e50; |
||||
|
margin-top: 60px; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue