Easy Redmine 中导出 PDF 文件

Easy Redmine 可以生成很多漂亮且实用的图表。在多数情景下,通过浏览器展示或打印出这些图表就已足够。但在某些场景下,如向客户发送项目进度报告,附带一个 PDF 格式的甘特图更为正式和专业。

Easy Redmine 支持将一些图表直接导出为 PDF 文件,并且可以自定义 PDF 模版。相对使用打印另存为 PDF 文件,直接导出 PDF 文件更为方便直接,而且不会出现莫名其妙的空白页,文件占用字节数少,导出的文件在打开后可以准确复制其中的文字。

本文以甘特图为例,介绍在 Easy Redmine 中如何将图表导出为 PDF 文件,如何修改导出数据模板,以及与导出 PDF 文件相关的问题和解决方法。

导出 PDF 文件

在图 1 所示的甘特图中,点击左下角的“打印”按钮,将会显示如图 2 所示的预览页面。

Easy Redmine 中导出 PDF 文件

图 1. Easy Gantt

在预览页面中,先核对右上方的纸张大小和方向,然后点击左上方的“PDF”按钮,将会以默认文件名下载生成的 PDF 文件,下载到的 PDF 文件的内容如图 3 所示。

Easy Redmine 中导出 PDF 文件

图 2. 预览页面

Easy Redmine 中导出 PDF 文件

图 3. PDF 文件内容

修改导出模板

如果不喜欢 PDF 文件中的图标、标题名称等,可以修改导出模板。

修改导出模板的入口有两处,一处是点击预览页面的“编辑模板”按钮,该按钮在图 2 中上方的位置;另一处是点击“管理” » “导出模板”,在如图 4 所示的导出数据模板列表中,选择甘特图模板修改或建立新的甘特图模板。

Easy Redmine 中导出 PDF 文件

图 4. 导出数据模板列表

在有多个甘特图模板时,可在图 1 左下角的模板列表中进行选择要使用的模板。

图 5 为修改或新建导出模板的界面。可以看出修改模板如同使用富文本编辑器编辑 Html 页面,略有不同的是有一些动态代码,所以更像是在编辑报表生成器。点击右侧的“显示动态代码清单”,可以帮助选择使用哪些动态代码。

Easy Redmine 中导出 PDF 文件

图 5. 修改导出模板

简单修改公司图标、标题名称、项目开始日期标签、计划完成日期标签,新的预览页面如图 6 所示。

Easy Redmine 中导出 PDF 文件

图 6. 修改导出模板后的预览页面

常见问题处理

1. 点击“PDF”按钮时出现异常

问题表现

在预览页面点击“PDF”按钮时,出现异常,如图 7 所示:

Easy Redmine 中导出 PDF 文件

图 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 文件是一件非常容易的事情。

首次使用该功能时,有可能因为安装设置的原因出现一些问题,这些问题也比较容易解决。

上一篇:Kotlin 源代码编译过程分析


下一篇:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun ...