Easy Redmine 可以生成很多漂亮且实用的图表。在多数情景下,通过浏览器展示或打印出这些图表就已足够。但在某些场景下,如向客户发送项目进度报告,附带一个 PDF 格式的甘特图更为正式和专业。
Easy Redmine 支持将一些图表直接导出为 PDF 文件,并且可以自定义 PDF 模版。相对使用打印另存为 PDF 文件,直接导出 PDF 文件更为方便直接,而且不会出现莫名其妙的空白页,文件占用字节数少,导出的文件在打开后可以准确复制其中的文字。
本文以甘特图为例,介绍在 Easy Redmine 中如何将图表导出为 PDF 文件,如何修改导出数据模板,以及与导出 PDF 文件相关的问题和解决方法。
导出 PDF 文件
在图 1 所示的甘特图中,点击左下角的“打印”按钮,将会显示如图 2 所示的预览页面。
图 1. Easy Gantt
在预览页面中,先核对右上方的纸张大小和方向,然后点击左上方的“PDF”按钮,将会以默认文件名下载生成的 PDF 文件,下载到的 PDF 文件的内容如图 3 所示。
图 2. 预览页面
图 3. PDF 文件内容
修改导出模板
如果不喜欢 PDF 文件中的图标、标题名称等,可以修改导出模板。
修改导出模板的入口有两处,一处是点击预览页面的“编辑模板”按钮,该按钮在图 2 中上方的位置;另一处是点击“管理” » “导出模板”,在如图 4 所示的导出数据模板列表中,选择甘特图模板修改或建立新的甘特图模板。
图 4. 导出数据模板列表
在有多个甘特图模板时,可在图 1 左下角的模板列表中进行选择要使用的模板。
图 5 为修改或新建导出模板的界面。可以看出修改模板如同使用富文本编辑器编辑 Html 页面,略有不同的是有一些动态代码,所以更像是在编辑报表生成器。点击右侧的“显示动态代码清单”,可以帮助选择使用哪些动态代码。
图 5. 修改导出模板
简单修改公司图标、标题名称、项目开始日期标签、计划完成日期标签,新的预览页面如图 6 所示。
图 6. 修改导出模板后的预览页面
常见问题处理
1. 点击“PDF”按钮时出现异常
问题表现
在预览页面点击“PDF”按钮时,出现异常,如图 7 所示:
图 7. Internal server error
这类问题在 Redmine 或 Easy Redmine 中比较常见,点击错误提示中的 "Download error details" 可以查看异常原因和异常在代码中的位置,方便系统管理员排查错误。
可能出现的提示有:
No wkhtmltopdf executable found at
>> Please install wkhtmltopdf - https://github.com/pdfkit/PDFKit/wiki/Installing-WKHTMLTOPDF
或
Broken pipe
问题处理
在 Easy Redmine 的文档库中有对该问题的描述和处理办法。
问题原因是未安装 wkhtmltopdf 或未安装正确的版本。
经过在 Ubuntu 16.04 和 18.04 下测试,通过 apt-get 安装的 wkhtmltopdf, 无论是 wkhtmltopdf 0.12.2.4, 还是 wkhtmltopdf 0.12.4 都无法正常工作。需要从 wkhtmltopdf 官网下载安装,在本文中使用的版本是 wkhtmltopdf 0.12.4 (with patched qt), 安装 wkhtmltopdf 可参照如下命令:
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -P /tmp/
cd /opt/
sudo tar xf /tmp/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
该问题的修复不涉及 Easy Redmine, 中间不需要中断 Easy Redmine 服务。
2. PDF 文件中的汉字未显示
问题表现
成功导出 PDF 文件后,如果 Linux 系统中未安装合适的中文字库,则可能会出现 PDF 文件中的汉字无法显示的问题。
此时在后台运行以下命令没有有效输出。
fc-list :lang=zh
问题处理
该问题的处理非常简单,安装合适的中文字库即可。在 Ubuntu 下可运行以下命令安装“文泉驿微米黑”字库。
apt-get install fonts-wqy-microhei
该问题的修复同样不需要中断 Easy Redmine 服务。
结论
由上可见,在 Easy Redmine 中,以期望的样式导出 PDF 文件是一件非常容易的事情。
首次使用该功能时,有可能因为安装设置的原因出现一些问题,这些问题也比较容易解决。