xiaozhuangge
<template>
    <view>
        <canvas canvas-id="gameCanvas" style="width:750rpx; height:1232rpx;"></canvas>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                kehu: \'\',
                pingming: \'\',
                date: \'\',
                zhongliang: \'\',
                zongjine: \'\'
            };
        },
        onLoad(options) {
            const ctx = uni.createCanvasContext(\'gameCanvas\'); //创建画布对象  
            uni.showLoading({
                title: \'正在生成中...\'
            })
            console.log(options) //接收上个页面的数据
            this.kehu = options.buyerOrg;
            this.pingming = options.goodsName;
            this.zhongliang = options.settleWeight;
            this.date = options.createTime;
            this.zongjine = options.settlement;
            let imageWidth = 375,
                imageHeight = 616;
            uni.getImageInfo({
                src: \'https://xxxxxxxxxxxxxxxxxx.png\', //网络图片用来做背景
                success: (res) => {
                    console.log(res.path)
                    ctx.save()
                    ctx.drawImage(res.path, 0, 0, 375, 616) 
                    ctx.draw(true)
                    ctx.setFillStyle(\'#333333\')
                    ctx.draw(true)
                    ctx.setFillStyle(\'black\')
                    ctx.setFontSize(16)
                    ctx.fillText(\'客户名:\' + this.kehu, 30, 130)
                    ctx.fillText(\'品名:\' + this.pingming, 30, 190)
                    ctx.fillText(\'重量:\' + this.zhongliang + \'吨\', 30, 250)
                    ctx.fillText(\'总金额:\' + \'¥\' + this.zongjine, 30, 310)
                    ctx.fillText(\'日期:\' + this.date, 30, 370)
                    ctx.draw(true)
                    setTimeout(() => { //解决画布空白的问题
                        ctx.draw(true, () => {
                            // console.log(666)
                            uni.canvasToTempFilePath({ //将canvas生成图片
                                canvasId: \'gameCanvas\',
                                x: 0,
                                y: 0,
                                width: imageWidth,
                                height: imageHeight,
                                destWidth: imageWidth, //截取canvas的宽度
                                destHeight: imageHeight, //截取canvas的高度
                                success: function(res) {
                                    uni.saveImageToPhotosAlbum({ //保存图片到相册
                                        filePath: res.tempFilePath,
                                        success: function() {
                                            uni.hideLoading()
                                            uni.showToast({
                                                title: "图片已保存",
                                                duration: 2000
                                            })
                                        },
                                        fail() {
                                            uni.hideLoading()
                                        }
                                    })
                                }
                            })
                        })
                    }, 1500);

                }
            })

        },


    }
</script>

 

分类:

技术点:

相关文章: