注意:以下方案是DHTMLX Gantt官方提供的免费版调用接口,需要在线联网访问官网export.dhtmlx.com 的服务器,断网或内网局域网用不了该免费版调用接口。
最近有个需求,将项目甘特图导出图片,但发现问题:当项目甘特图内的行数很多时(这是必然,当项目周期长,建立的任务很多,就会出现很多任务行),超过了甘特图的可视区域,就会出现滚动条,导出图片的时候只会导出可视区域内显示的甘特图,其他非可视区域的内容没导出(就是是封装的js导出图片的功能有点类似是截图工具的功能,看见什么就能截出什么,看不见的就截不出)。

现象如下:

网页显示效果:

点击甘特图区域的【导出图片】按钮的效果:

可以看出js导出图片的功能本质就是个可视区域的截图工具功能。但是目前确实有需求需要导出完整数据的图,该怎么办呢?

自己首先尝试了CSS的方式:
思路就是希望甘特图区域能根据数据内容的多少自动自适应宽度和高度,然后再利用原来的js导出图片功能;然后调试半天发现没法动态自适应,gantt对象的div必须要初始给定一个指定的宽度和高度,否则效果达不到基本的正常显示。另外如果甘特图时间周期跨度长的化,超过显示器宽度,必然会导致水平滚动条的显示,那么传统js导出图片还是会丢失不可见数据。另外如何很多的化,超过显示器高度,也必然会导致垂直滚动条的显示,那么传统js导出图片还是会丢失不可见数据。
后来尝试了多次其他办法也不可行后,被迫去了DHTMLX gantt官网,查了官方文档,找到了最终解决方案,记录下主要过程步骤:
甘特图导出PNG/PDF的官网地址:https://docs.dhtmlx.com/gantt/desktop__export.html
第一步:在原有项目html页面中引入导出功能js

在线js地址:
<script src="https://export.dhtmlx.com/gantt/api.js"> 也可以浏览器访问该地址,复制页面中显示的js内部代码,粘贴到本地自定义建立的空js文件中,在页面中直接引入离线本地的资源:
<script src="./js/ganttexportpng.js"></script>

第二步:在页面适当位置(在gantt.init("gantt_here");代码的上方),加入一句导出插件功能启用的声明代码:

    gantt.plugins({
export_api: true
});

第三步:在页面的button区域,增加一个button,button按钮的点击事件指向第一步api.js或ganttexportpng.js内部定义的exportToExcel()方法:

  <input value="导出25" type="button" class="layui-btn layui-btn-green" style="margin-left: 5px;width: 4%;"
onclick='gantt.exportToExcel()' />

保存代码,执行点击导出图片,效果如下图,可以导出甘特图内完整内容:

这里有个小插曲,就是导出图片右侧区域的进度条上可能会显示工作描述的文字信息,这里需要修改一个小地方代码:

    gantt.templates.task_text = function (start, end, task) {
//将原来的return "";改成return " ";
return " ";
};

可能gantt在调用官方的导出图片功能时,发现return "";时认为是一种“错误”,进度条上没有显示内容,会默认将【工作描述】列内容拿过来在这里显示。那么人为设定显示一个空格就可以规避解决。

DHTMLX Gantt 甘特图导出全数据图/PDF-----使用官方方法的更多相关文章

  1. 甘特图dhtmlx Gantt入门

    (以下截图来自别人的博客,来源地址已经忘记了,若后期找到会补充上来!) API地址:https://docs.dhtmlx.com/gantt/desktop__guides.html,这是英文的网页 ...

  2. C#+OpenGL+FreeType显示3D文字(1) - 从TTF文件导出字形贴图

    C#+OpenGL+FreeType显示3D文字(1) - 从TTF文件导出字形贴图 +BIT祝威+悄悄在此留下版了个权的信息说: 最近需要用OpenGL绘制文字,这是个很费时费力的事.一般的思路就是 ...

  3. mysql快速导出数据库ER图和数据字典(附navicat11安装教程及资源)

    ♣ mysql使用navicat11快速导出数据库ER图 ♣ mysql使用navicat11快速导出数据库数据字典 ♣ navicat11 for mysql (这里是mysql5.7.12)专业版 ...

  4. Matlab从一系列图片导出AVI视频,导出GIF动图

    平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj ...

  5. highCharts的多图导出

    已实现HighChart的多图导出,不能上传文件,所以需要call我735734485.

  6. 可以把思维导图导出为word文档方便其他人查看吗?

    MindManager除了强大的大纲视图编辑功能外,还拥有多种导出格式,方便大家迅速导出文件,在团队中分享自己的观点,提高团队的工作效率,本次小编使用的思维导图软件版本是MindManager 202 ...

  7. Tableau绘制漏斗图、甘特图、瀑布图、镶边面积图、阴影坡度图

    Tableau绘制漏斗图.甘特图.瀑布图.镶边面积图.阴影坡度图 本文首发于博客冰山一树Sankey,去博客浏览效果更好.直接右上角搜索该标题即可 一. 漏斗图 数据源 1.1 分色直条漏斗图 (1) ...

  8. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  9. (转)Unity3D 游戏贴图(法线贴图,漫反射贴图,高光贴图)

    原帖网址http://www.u3dpro.com/read.php?tid=207  感谢jdk900网友的辛苦编写 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图 ...

  10. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

随机推荐

  1. 在Linux下使用wxWidgets进行跨平台GUI开发

    在Linux下使用wxWidgets进行跨平台GUI开发 wxWidgets是一个功能强大的跨平台C++ GUI框架,支持Windows.Linux和macOS等多种平台.本文将详细介绍在Linux系 ...

  2. kubernetes之HPA详细介绍

    一.HPA说明 HPA(Horizontal Pod Autoscaler)是kubernetes的一种资源对象,能够根据某些指标对在statefulset.replicacontroller.rep ...

  3. ArchSummit2021年全球架构师峰会将于4月25号-26号在上海举办,袋鼠云数栈技术专家受邀分享

    一.大会介绍 ArchSummit全球架构师峰会是极客邦科技旗下InfoQ中国团队推出的重点面向高端技术管理者.架构师的技术会议,54%参会者拥有8年以上工作经验.会议聚焦业界强大的技术成果,秉承&q ...

  4. 两步实现让antd与IDE和睦相处的处理案例

    导读: Web IDE的开发从来是整个大数据平台开发中非常繁复和笨重的一环,从零搭建一个 Web IDE 通常意味着大量的殚精竭虑和苦思冥想,时间成本更是不可计数.两个UI组件库一起用更是bug的代名 ...

  5. Docker安装与基础使用

    一.Docker介绍 Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.D ...

  6. software-center ubuntu处在不稳定的状态,最好重装

    sudo dpkg --remove --force-remove-reinstreq software-center sudo apt-get install software-center 搞得我 ...

  7. mkl错误解决

    简介 RT 出现下述错误,需要安装一下mkl库才行 mkl_intel_thread.lib(scsr1_mmout_par_lp64.obj) : error LNK2001: 无法解析的外部符号 ...

  8. Economic-Assets-Allocation&Management: 资产配置+管理:标准普尔家庭资产配置图:家庭理财的科学指南

    Economic-Assets-Allocation&Management: 资产配置+管理: 标准普尔家庭资产配置图:家庭理财的科学指南 发表时间:2025-05-28 10:19:43 在 ...

  9. Linguistics-English-单词本-Cluster单词簇: -dox:教派观点 + don-:给予 + -duce:引导 + Obvious:明显的 + Frequently:频繁的 + Stop:阻止

    How much money has been spent on research and development ? It's not to say every single dollar or p ...

  10. centOS安装telnet(在线和rpm包安装)-九五小庞

    在执行telnet时会提示命令不存在,此时输入命令 rpm -qa telnet-server ,若无输出内容,则表示没有安装. 1.在线安装 分别执行如下两个命令: yum install teln ...