前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >highcharts本地导出

highcharts本地导出

作者头像
tianyawhl
发布2022-11-21 10:13:15
9280
发布2022-11-21 10:13:15
举报
文章被收录于专栏:前端之攻略

highcharts有自动导出的模块,以vue中使用为例,只要在main.js中引入导出模块并注册

代码语言:javascript
复制
import Exporting from 'highcharts/modules/exporting.js'
Exporting(Highchart)

但是这样会调用highcarts在线的接口地址,但是要不能上外网就需要本地导出,本地导出只要额外引入离线导出模块并注册

import OfflineExporting from 'highcharts/modules/offline-exporting.js' OfflineExporting(Highchart)

 需要配置libURL,否则依然调用的在线highcharts接口地址,具体操作把node_modules》highcharts>lib文件夹复制到我们项目的public>static目录下,并配置libURL

代码语言:javascript
复制
    exporting:{
        buttons:{
            contextButton:{
                menuItems: ["viewFullscreen", "printChart", "separator", "downloadPNG", "downloadJPEG", "downloadPDF"],
                // symbol: 'download',
                // symbol: "url(static/mass0.png)",
                // x:10,
                x:0,
                y:0
            }
        },
        libURL: "/static/lib/",
        pdfFont:{
            normal: require('@/assets/fonts/simhei.ttf')
        },
        // scale:1,  //默认2,设置图表尺寸使用
        // sourceWidth:1090,
        // printMaxWidth:1100,
        // width:1090 // 没有效果
    },

但是配置好之后遇到导出pdf文字会出现乱码,查资料发现需要升级highcharts高版本10.0以上,并下载字体文件(ttf格式的字体),并配置pdfFont(如上),

这种导出的图片或者pdf文件往往比较小,如果导出的内容跟显示的一样,需要额外设置如下,并按上面把scale设为1

1、在图表中设置一个宽度

代码语言:javascript
复制
        chart: {
          zoomType: "x",
          type: "spline",
          width:null
        },
代码语言:javascript
复制
  mounted() {
    this.chartOptions.chart.width = this.$refs.chartOptions.offsetWidth
    this.chartOptions.exporting.printMaxWidth = this.$refs.chartOptions.offsetWidth
  },
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档