Redmine 甘特图导出 PDF 和 PNG 中文乱码问题

Redmine使用了RMagick来处理图片,fpdf处理PDF,并在调用时设定了字体
PDF中文字体

redmine 中关于PDF字体设置的代码

case pdf_encoding
          when ‘UTF-8‘
            @font_for_content = ‘FreeSans‘
            @font_for_footer = ‘FreeSans‘
          when ‘CP949‘
            extend(PDF_Korean)
            AddUHCFont()
            @font_for_content = ‘UHC‘
            @font_for_footer = ‘UHC‘
          when ‘CP932‘, ‘SJIS‘, ‘SHIFT_JIS‘
            extend(PDF_Japanese)
            AddSJISFont()
            @font_for_content = ‘SJIS‘
            @font_for_footer = ‘SJIS‘
          when ‘GB18030‘
            extend(PDF_Chinese)
            AddGBFont()
            @font_for_content = ‘GB‘
            @font_for_footer = ‘GB‘
          when ‘BIG5‘
            extend(PDF_Chinese)
            AddBig5Font()
            @font_for_content = ‘Big5‘
            @font_for_footer = ‘Big5‘
          else
            @font_for_content = ‘Arial‘
            @font_for_footer = ‘Helvetica‘
          end

在中文时,Redmine 使用了GB字体,在debian or Ubuntu系统中,可使用APT安装
apt-get install ttf-arphic-bkai00mp ttf-arphic-bsmi00lp ttf-arphic-gbsn00lp ttf-arphic-gbsn00lp

参考 http://isis.poly.edu/~qiming/chinese-debian-mini-howto.html
图片中文问题(PNG)
图片中文也是类似的原理,下面是Redmine config/configuration.yml 中的内容
# This setting is not necessary in non CJK.
#
# Examples for Japanese:
# Windows:
# rmagick_font_path: C:\windows\fonts\msgothic.ttc
# Linux:
# rmagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
#
rmagick_font_path:

1>创建目录 /usr/share/fonts/truetype/arphic/

2> 下载gbsn00lp.ttf.gz

cd /tmp

wget http://down1.chinaunix.net/distfiles/gbsn00lp.ttf.gz

gunzip gbsn00lp.ttf.gz

cp /tmp/gbsn00lp.ttf   /usr/share/fonts/truetype/arphic/

3>修改这段代码,设定适当的中文字体路径即可,如:
rmagick_font_path: /usr/share/fonts/truetype/arphic/gbsn00lp.ttf

重新启动服务器,现在中文导出应当正常了。

本文使用的Redmine版本为 3.3.0

原文地址:https://www.cnblogs.com/eos666/p/9431872.html

时间: 2024-10-04 10:49:00

Redmine 甘特图导出 PDF 和 PNG 中文乱码问题的相关文章

Project导入RedMine甘特图展示

前端时间因公司业务需要使用RedMine来管理项目进度. 但是使用其自带的csv导入工具无法完成导入. 而我是java开发,并不会所谓的ruby语言,自然无法在段时间内完成此导入功能的修改. so,经过研究RedMine表结构,以及其二叉树展示方式,自己写了一个将Excel后台直接导入RedMine的工具. 详细代码在GitHub上: https://github.com/wudadadaju/ProjectImportRedmine/tree/master 原文地址:https://www.c

解决Java POI 导出Excel时文件名中文乱码,兼容浏览器

String agent = request.getHeader("USER-AGENT").toLowerCase();   response.setContentType("application/vnd.ms-excel");   String fileName = "文件名";   String codedFileName = java.net.URLEncoder.encode(fileName, "UTF-8");

displaytag无法导出pdf、rtf?????? 已解决

因为做毕业设计的需要,所以从今天开始需要考虑分页处理的问题,一开始是在网上寻找可用的开源框架予以借鉴使用,于是在 经过查阅网上的许多文章资料后,我将目标锁定到了display tag上,关于display tag的用法,主要集中在几个方面:分页(含 内存分页与数据库分页).对列排序.导出数据. 网上的相关资料确实很多,但是很多转载的文章大同小异的也很多.于是就为一些问题埋下了伏笔. 我按照网上的大部分说法,导入了相关包: displaytag-1.2.jar commons-lang-2.6.j

Java导出Excel表(poi)名中文乱码问题处理

<pre name="code" class="java">String _filename = ValidateTools.date2Str(date, "yyyyMMddHHmmss"); String filename = f_name + _filename; HSSFSheet sheet; HSSFCell cell; response.setContentType("application/x-download

教你读懂redmine中的甘特图

Redmine是用Ruby开发的基于web的项目管理软件,他可以自动绘制甘特图,对于我们了解项目进度有很重要的帮助.但很多新人小白在使用redmine时,就是当成一个简单的备忘录来使用,对于甘特图神马的根本就不care,那么如何正确的使用甘特图呢?如何读懂redmine中的甘特图呢? Redmine是可以根据建立的问题的开始时间.结束时间和完成百分比自动绘制甘特图的.所以我们要使用redmine的甘特图,必须在新建问题时根据项目计划设置好开始时间,预估结束时间,每天在结束一天的工作后,注意及时更

HTML导出PDF中文文件

今天在做一个账单导出,需要导出PDF文件.于是开始满天下找解决方案.其实说实话,PDF确实了解比较少,看到园子里面很多人都说用  iTextSharp. 于是乎专门对iTextSharp是什么进行了搜索,原来这个国外的一群人开发的PDF的类库.于是根据下载了iTextSharp.DLL并引用了它,结果发现结果太不理想了.没有样式没有中文,这让人....甚至,跨行的RowSpan也给我弄掉了.这完全不是我需要的东西嘛.想放弃了,换个东西来做.然后随手点了iTextSharp的开源项目.结果发现

itop 2.2 导出PDF中文乱码问题解决

itop 2.2 导出PDF,中文会有乱码问题,这很明显就是字体设置问题,跟tcpdf无关. 经过排查,修改文件itop/core/pdfbulkexport.class.inc.php ,第128行即可, $oPDF->SetFont('dejavusans', '', 8, '', true); 改为 $oPDF->SetFont('DroidSansFallback', '', 8, '', true);

JS导出PDF插件(支持中文、图片使用路径)

原文:JS导出PDF插件(支持中文.图片使用路径) 在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playground.html查看.在使用过程中,还发现图片的插入是相对繁琐的一件事. 针对这些问题,本文的主要内容可分为三部分: pdfmake的基本使用方法: 如何解决中文问题; 如何通过指定图片地址插入图片. pdfmake的基本使用方法 1.包含以下两个文件

java实现甘特图的2种方法:SwiftGantt和Jfree (转)

http://blog.sina.com.cn/s/blog_50a7c4a601009817.html 第一种方法使用SwiftGantt实现甘特图(进度图推荐这个) import java.awt.Color;import java.io.IOException;import java.util.GregorianCalendar;import com.yuxingwang.gantt.Config;import com.yuxingwang.gantt.GanttChart;import