vue.js - 是否可以使用 vue-chartjs 打印图表?

标签 vue.js printing chart.js vue-chartjs

我正在使用 vue-chartjs 在 webapp 上渲染图形。我知道如果您使用原版 library 可以打印图表.但是我不知道如何使用库的 vue 版本来做到这一点。

我在外部 charts.js 文件中有我的图表变量

import {Bar, mixins } from 'vue-chartjs'
Chart.defaults.global
let chartOptions = Chart.defaults.global;   
const { reactiveProp } = mixins
export default {
   extends: Bar,
   mixins: [reactiveProp],
   props: ['options'],

   mounted () {
    let that = this;
    that.chartOptions = {
      scales: {
        yAxes: [{
            ticks: {
                suggestedMin: 0,  
                fontFamily: "'Overpass_Mono', 'Monaco', monospace",
                fontColor: "rgba(254, 255, 248, 0.5)"
            },
            gridLines: {
                color: 'rgba(255, 80, 248, 0.08)',
                zeroLineColor: 'rgb(168, 119, 181)',
                 zeroLineWidth: 2
            },
        }],
        xAxes: [{
            ticks: {
                suggestedMin: 0,    
                 fontColor: "rgb(168, 119, 181)"

            },
            gridLines: {
                color: 'rgba(255, 80, 248, 0.08)',
                zeroLineColor: 'transparent',
            }
        }],
    },
    legend: {
        labels: {
            fontColor: 'rgb(168, 119, 181)',
        }
    }
  },
    this.renderChart(this.chartData, that.chartOptions)
  }
}

然后在我的组件模板上,我有:
<template>
    <div class="report">
        <charts v-if="todaySelected"
                :chart-id="'total_visits_chart_bar'" 
                :height="chartsHeight" 
                :options="chartOptions"
                :chart-data="datacollection" 
        ></charts>
        <div v-if="todaySelected">
        <button @click="printChart(charts)">Print chart</button>
    </div>
</template>
<script>
import charts from './chart_0.js'
    components: {
       charts,
    },
    data() {
        return{
             datacollection: {"datasets":[{"label":"Entries Today","data":[15,15,15,0]},{"label":"Currently Inside","data":[2,2,2,0]}],"labels":[]}
        }
     }.
 methods: {
     printChart(charts) {
        charts.print();
     },
  }
</script>

任何帮助,将不胜感激。

最佳答案

该库似乎基于 chartjs 而不是 canvasjs https://www.chartjs.org/docs/latest/您可能想了解如何打印窗口 Quick Print HTML5 Canvas ,并记住您可以访问绘制图形的 Canvas 元素:

 methods: {
     printChart() {
        const canvasEle = this.$el.querySelector('canvas');
        //now your chart image is on canvasEle 
     },
  }

关于vue.js - 是否可以使用 vue-chartjs 打印图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270288/

相关文章:

C编程: A pyramid with asterisks

chart.js - chart.js中缺失数据之间的连接点

javascript - 使用 CRUD 设置激活具有多层嵌套路由的路由器链接

javascript - 使用 Vuex 更新数组中的对象

javascript - 使用 Vue JS 的可重用文件组件

javascript - Chart.js 线性插值

javascript - 动画图表师在展会上

javascript - 在加载组件之前加载外部脚本 - Vue.js

c++ - 尝试打印时堆损坏

c# - PrintDocument.PrinterSettings.Print() 更改默认打印机