方法一
1、安装插件 wxml2canvas
npm install --save wxml2canvas
2、类型
// 小程序页面
let data={
list:[{
type:'wxml',
class:'.test_center .draw_canvas',
limit:'.test_center',
x:0,
y:0
}]
}
3、数据结构
let testData=[
{
PageIndex:1,
ImageUrl:"https://minio.23544.com:9010/mk-sys-test/origin-paper/432531489095806/2023-06-26-15-42-38/9d43c15bb1834cacb0a8900b5e45dfb2/1.jpg",
Height:1680.0,
Width:1200.0,
Questions:[
{"QuestionNum":"1-2","X":140.00000450195313,"Y":515.989620895996,"Width":149.77778,"Height":54.77778,"score":1.00,"totalScore":2.00},
{"QuestionNum":"1111","X":113.10765335144043,"Y":756.3195006567382,"Width":799.77778,"Height":199.77778,"score":0.0,"totalScore":0.0},
{"QuestionNum":"2222","X":100.0000025946045,"Y":822.2222792822265,"Width":799.77778,"Height":199.77778,"score":0.0,"totalScore":0.0},
{"QuestionNum":"12","X":95.9895980078125,"Y":1260.989620895996,"Width":1022.77778,"Height":305.77778,"score":1.00,"totalScore":14.00},
]
},
{
PageIndex:1,
ImageUrl:"https://minio.23544.com:9010/mk-sys-test/origin-paper/432531489095806/2023-06-26-15-42-38/9d43c15bb1834cacb0a8900b5e45dfb2/1.jpg",
Height:1680.0,
Width:1200.0,
Questions:[
{"QuestionNum":"1-2","X":140.00000450195313,"Y":515.989620895996,"Width":149.77778,"Height":54.77778,"score":1.00,"totalScore":2.00},
{"QuestionNum":"1111","X":113.10765335144043,"Y":756.3195006567382,"Width":799.77778,"Height":199.77778,"score":0.0,"totalScore":0.0},
{"QuestionNum":"2222","X":100.0000025946045,"Y":822.2222792822265,"Width":799.77778,"Height":199.77778,"score":0.0,"totalScore":0.0},
{"QuestionNum":"12","X":95.9895980078125,"Y":1260.989620895996,"Width":1022.77778,"Height":305.77778,"score":1.00,"totalScore":14.00},
]
}
]
4、页面引用
<template>
<canvas canvas-id="canvas1" class="test_center"></canvas>
</template>
<script setup>
import Wxml2Canvas from 'wxml2canvas';
const onclicks=()=> {
person.drawImage = new Wxml2Canvas({
width: 340,
height: 210,
element: 'canvas1',
background: '#f0f0f0',
finish(url) {
console.log(7777,url)
uni.previewImage({
// 需要预览的图片链接列表
urls: [url],
// 为当前显示图片的链接/索引值
current: url,
// 图片指示器样式
indicator:'default',
// 是否可循环预览
loop:false
});
},
error (res) {
}
});
let data = {
list: [
{
type: 'image',
x: 0,
y: 0,
url: person.itemExam.ImageUrl,
style: {
width: person.itemExam.Width*person.scaleWidth,
height: person.itemExam.Height*person.scaleWidth,
border: '0 solid #aaaaaa',
boxShadow: '10 20 20 rgba(0, 0, 0, 0.4)'
}
}
]
}
person.itemExam.Questions.forEach((quest,itIndex)=>{
data.list.push({
type: 'text',
text: quest.score,
x: quest.X*person.scaleWidth,
y: quest.Y*person.scaleWidth,
style: {
textAlign: 'right',
width: quest.Width*person.scaleWidth-40,
height: quest.Height*person.scaleWidth-40,
fontSize: 16,
color: 'red',
border: '0px solid red',
padding: '6px 40px 0 0'
}
})
data.list.push({
type: 'text',
text: ' /'+quest.totalScore,
x: quest.X*person.scaleWidth,
y: quest.Y*person.scaleWidth,
style: {
textAlign: 'right',
width: quest.Width*person.scaleWidth-6,
height: quest.Height*person.scaleWidth-6,
fontSize: 16,
color: 'blue',
border: '1px solid red',
padding: '6px 6px 0 0'
}
})
})
person.drawImage.draw(data);
}
</script>
方法二
希望我的愚见能够帮助你哦~,若有不足之处,还望指出,你们有更好的解决方法,欢迎大家在评论区下方留言支持,大家一起相互学习参考呀~