2022-03-25 07:23:57 +00:00
|
|
|
|
<template>
|
2022-12-05 01:10:25 +00:00
|
|
|
|
<PageWrapLayout>
|
2022-09-01 08:43:46 +00:00
|
|
|
|
<div id="wrap" style="margin-bottom: 20px">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<el-button type="primary" @click="print(1)" >打印图片</el-button>
|
|
|
|
|
|
<el-button type="primary" @click="print(2)">打印Json数据</el-button>
|
|
|
|
|
|
<el-button type="primary" @click="print(3)">打印HTML</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="margin-top: 20px">
|
2022-09-29 14:04:17 +00:00
|
|
|
|
<img :src="logo" style="width: 200px" />
|
2022-09-01 08:43:46 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
<div id="tableBox">
|
|
|
|
|
|
<el-table :data="tableData" style="width: 100%">
|
|
|
|
|
|
<el-table-column prop="date" label="日期" width="180" />
|
|
|
|
|
|
<el-table-column prop="name" label="名字" width="180" />
|
|
|
|
|
|
<el-table-column prop="address" label="地址" />
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</div>
|
2022-04-26 07:32:51 +00:00
|
|
|
|
</div>
|
2022-09-01 08:43:46 +00:00
|
|
|
|
|
|
|
|
|
|
<el-descriptions title="配置项 " :column="1" border class="descriptions">
|
|
|
|
|
|
<el-descriptions-item label="官方文档"> <a href="https://github.com/crabbly/Print.js" target="_blank">https://github.com/crabbly/Print.js</a> </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="printable"> 文档来源:pdf或图像的url,html元素的id或json数据的对象 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="type"> 可打印类型。可用的打印选项包括:pdf,html,image,json和raw-html。 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="documentTitle"> 打印html,image或json时,它将显示为文档标题。如果用户尝试将打印作业保存为pdf文件,它也将是文档的名称。 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="scanStyles">设置为false时,库不会处理应用于正在打印的html的样式。使用css参数时很有用 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="targetStyle"> 默认情况下,在打印HTML元素时,库仅处理某些样式。此选项允许您传递要处理的样式数组。例如:['padding-top','border-bottom'] </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="gridHeaderStyle"> 打印JSON数据时网格标题的可选样式。 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="properties"> 在打印JSON时使用。这些是对象属性名称。 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="honorColor"> 要以彩色打印文本,请将此属性设置为true。默认情况下,所有文本都将以黑色打印。 </el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item label="css"> 这允许我们传递一个或多个应该应用于正在打印的html的css文件URL。值可以是包含单个URL的字符串,也可以是包含多个URL的数组。 </el-descriptions-item>
|
|
|
|
|
|
</el-descriptions>
|
2022-12-05 01:10:25 +00:00
|
|
|
|
</PageWrapLayout>
|
2022-03-25 07:23:57 +00:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
|
|
|
import printJS from 'print-js'
|
2022-09-01 08:43:46 +00:00
|
|
|
|
import '@/utils/Print'
|
2022-12-15 13:28:19 +00:00
|
|
|
|
import logo from '@/assets/image/logo.png'
|
2022-03-25 07:23:57 +00:00
|
|
|
|
|
|
|
|
|
|
const tableData = [
|
|
|
|
|
|
{
|
|
|
|
|
|
date: '2016-05-03',
|
|
|
|
|
|
name: 'Tom',
|
|
|
|
|
|
address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
date: '2016-05-02',
|
|
|
|
|
|
name: 'Tom',
|
|
|
|
|
|
address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
date: '2016-05-04',
|
|
|
|
|
|
name: 'Tom',
|
|
|
|
|
|
address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
date: '2016-05-01',
|
|
|
|
|
|
name: 'Tom',
|
|
|
|
|
|
address: 'No. 189, Grove St, Los Angeles',
|
|
|
|
|
|
},
|
|
|
|
|
|
]
|
|
|
|
|
|
|
2022-08-05 08:04:07 +00:00
|
|
|
|
const print = (type) => {
|
2022-03-25 07:23:57 +00:00
|
|
|
|
switch (type) {
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
printJS({
|
2022-08-05 08:04:07 +00:00
|
|
|
|
type: 'image',
|
2022-09-29 14:04:17 +00:00
|
|
|
|
printable: [logo],
|
2022-08-05 08:04:07 +00:00
|
|
|
|
documentTitle: '打印图片',
|
2022-03-25 07:23:57 +00:00
|
|
|
|
})
|
2022-08-05 08:04:07 +00:00
|
|
|
|
break
|
2022-03-25 07:23:57 +00:00
|
|
|
|
case 2:
|
|
|
|
|
|
printJS({
|
2022-08-05 08:04:07 +00:00
|
|
|
|
type: 'json',
|
2022-03-25 07:23:57 +00:00
|
|
|
|
documentTitle: '打印表格',
|
|
|
|
|
|
printable: tableData,
|
|
|
|
|
|
gridStyle: 'text-align: center;border: 1px solid lightgray;font-size: 12px;',
|
|
|
|
|
|
properties: [
|
|
|
|
|
|
{ field: 'date', displayName: '日期' },
|
|
|
|
|
|
{ field: 'name', displayName: '名字' },
|
|
|
|
|
|
{ field: 'address', displayName: '地址' },
|
|
|
|
|
|
],
|
|
|
|
|
|
})
|
2022-08-05 08:04:07 +00:00
|
|
|
|
break
|
2022-03-25 07:23:57 +00:00
|
|
|
|
case 3:
|
2022-09-01 08:43:46 +00:00
|
|
|
|
// printJS({
|
|
|
|
|
|
// type: 'wrap',
|
|
|
|
|
|
// documentTitle: '打印页面',
|
|
|
|
|
|
// printable: "tableBox",
|
|
|
|
|
|
// scanStyles:false,
|
|
|
|
|
|
// targetStyles: ['*'], // 允许打印所有样式属性
|
|
|
|
|
|
// honorColor: true, // 是否打印彩色文本
|
|
|
|
|
|
// style: '@page {margin: 0 10mm};', // 不打印页眉和页脚
|
|
|
|
|
|
// gridStyle: 'border: 1px solid lightgray;font-size: 12px;',
|
|
|
|
|
|
// })
|
|
|
|
|
|
Print('#wrap', {
|
|
|
|
|
|
onStart: function () {
|
|
|
|
|
|
console.log('onStart', new Date())
|
|
|
|
|
|
},
|
|
|
|
|
|
onEnd: function () {
|
|
|
|
|
|
console.log('onEnd', new Date())
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2022-08-05 08:04:07 +00:00
|
|
|
|
break
|
2022-03-25 07:23:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
2022-08-05 08:04:07 +00:00
|
|
|
|
<style></style>
|