登录 注册

登录

问题 SurveyForce Deluxe 后台导出 PDF 时中文乱码问题!

更多
2012年07月19日 11:18 - 2012年07月19日 23:13 #1 作者: Pibumu
老白同志:
我在我网站上安装了个英文版的问卷系统:SurveyForce Deluxe, 可是用PDF和CVS导出含中文字符的报告全无法显示,乱码(变成一个一个框框),另外后台也有页面无法正常显示。还请老白同志帮忙看看!先谢谢啦!
附件:
最后修改: 2012年07月19日 23:13 由 Joomla之门.

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月19日 12:45 #2 作者: Joomla之门
你发来的文件已收到。我会尽快抽时间专门测试一下。请耐心等几天。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月19日 23:22 #3 作者: Joomla之门
我刚刚安装了你发来的 SurveyForce Deluxe,在其后台确实有一个 PDF 导出按钮,可以用来导出调查结果报告。

我使用了一下示范数据,输入了一些中文字符。然后导出 PDF,结果跟你一样,发现 PDF 里面的中文都无法正常显示,变成了方框。

我简单看了一下 SurveyForce Deluxe 的 PDF 导出功能,发现它是采用 tcpdf 来输出 PDF 文档的。在 /administrator/components/com_surveyforce/tcpdf/fonts 这个目录中,可以看到,默认的字体只有 freesans 系列(几个不同的文件名后缀分别代表正常态、斜体、粗体)。而你也知道 freesans 字体是西文字体,并不能渲染中文字符,所以才无法将中文字符输出到 PDF 文档,导致 PDF 中的中文字符位置出现了方框。

解决的办法也很简单:我在 《Joomla! 1.5 生成中文PDF的解决方案》 一文中已经指出,只要指定让 tcpdf 使用中文字体,那就可以了,因为所有的中文字体都已包含了对 ASCII 码字符的渲染,所以中文、英文都能正确输出到 PDF 文档。

本站提供的 Joomla 1.5.26 核心中文版 里面已经包含了我亲手制作的中文字体,可以帮助 Joomla 1.5 核心正确输出中文 PDF。只要将这里面的中文字体提取出来,并交给 SurveyForce Deluxe 来调用,就能解决这个问题。

不过,我刚刚尝试了一下直接将 droidsansfallback 字体复制到 /administrator/components/com_surveyforce/tcpdf/fonts 这个目录中,却无法生效。可能需要一些设置。时间仓促,来不及进行下一步测试了,先给你回帖说明一下初步进展。接下来我再找时间继续研究。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月20日 00:32 #4 作者: Joomla之门
在官方论坛找到一个泰语用户提问帖子 Csv and pdf report problems with Thai language ,参照他的做法,解决了 CSV 输出时中文乱码的问题:

打开 /administrator/components/com_surveyforce/admin.surveyforce.php 这个文件,在大约第 1121 行,找到如下代码:
function SF_processCSVField($field_text) {

在这一行下方插入新行,输入新代码,使得最终结果(第1121行和1122行)变成:
function SF_processCSVField($field_text) {
	$field_text = iconv('UTF-8', 'gb2312', $field_text);

保存文件,上传覆盖原文件。现在输出的 CSV 文件里面能够正常显示中文字符了。

PDF 问题还在研究之中,请继续等待。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月20日 01:30 #5 作者: Joomla之门
PDF 输出问题似乎也解决了。

操作步骤:

1、从 Joomla 1.5 中文版核心(joomla之门版)安装包里面提取下列三个文件:

/language/pdf_fonts/droidsansfallback.php
/language/pdf_fonts/droidsansfallback.ctg.z
/language/pdf_fonts/droidsansfallback.z


将这个3个文件上传到 /administrator/components/com_surveyforce/tcpdf/fonts 这个目录中。

2、打开 /administrator/components/com_surveyforce/tcpdf/sf_pdf.php 这个文件,在大约第 126、127 行,找到如下代码:
// Set PDF Header and Footer fonts
		$font = 'freesans';

修改为:
// Set PDF Header and Footer fonts
		$font = 'droidsansfallback';

保存此文件并上传、覆盖原文件。

现在试试 Survey Force Deluxe 后台的 PDF 输出功能,中文字符应该能正常显示了。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月20日 06:50 #6 作者: Pibumu
老白同志,

首先对您的技术,效率和敬业精神送上N个赞!!!
为表谢意我将再次升级我的等级为2x终身高级会员。谢谢

目前您提供的方案是joomla 1.5,可是我安装的是2.5不知是否处理上是否一致呢?
如果不是,有何区别?

谢谢

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月20日 10:50 #7 作者: Joomla之门
你误会了,我提到 Joomla 1.5 只是想说我们要提取的那3个文件在 J1.5 的安装包里面,这3个文件放在 Joomla 2.5 网站上照样运行 —— 我的整个测试过程本身就是在 Joomla 2.5 上面进行的。

再次感谢你的信任和支持!不过,你不需要再付费了。你已经是高级终身会员了,目前是最高级别了。如果愿意支持本站发展,请抽空多来论坛回帖帮助新人即可。谢谢!

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月20日 11:30 #8 作者: Pibumu
老白,

我按您说的做,结果却连这个组件的打不开了哦,我猜可能是因为我安装是joomla 英文版系统而不是您这里的深度汉化版系统?您觉得呢?

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月20日 12:12 #9 作者: Joomla之门
跟你的 Joomla 是否中文版没关系。你可能修改文件时出错了。

附件是我修改过的文件,请参照前面回帖中提到的路径,上传到正确的位置,覆盖原文件试试看。

游客无法观看附件。登录后才能看到。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

本帖有文件附件。
登录之后才能看到。

下列用户已致谢:: Pibumu

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月21日 16:26 - 2012年07月21日 16:49 #10 作者: Pibumu
老白,

能不能请你直接在我网站上看看!PDF的可以了,CSV导出的还是乱码,全部是问号。
最后修改: 2012年07月21日 16:49 由 Pibumu. 原因: 补充

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月22日 01:33 #11 作者: Joomla之门
我根据你提供的后台账号刚刚登录你的网站看了一下,我没有做任何改动,直接测试了 PDF 和 CSV 导出,发现都是正常的,中文都能正常显示。

我电脑上设置的是默认用 Excel 直接打开 CSV 格式文件。我的 Excel 2010 打开该文件之后可以看到中文。然后我又用文本编辑器 EmEditor 打开这个 .csv 文件,也一样看到正常中文。你再试试?

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月22日 07:11 #12 作者: Pibumu
老白同志,

谢谢!原来是我电脑的问题,我这台电脑是瑞典语系统的,所以打开中文乱码?我换了一台中文系统的电脑后也能看见了,再次感谢!

登录 或者   注册一个会员帐号 来参与讨论

更多
2012年07月22日 09:52 #13 作者: Joomla之门
哦,我原来没考虑你的电脑操作系统的影响。现在很好解释了:瑞典语的操作系统里面没有中文字体,因此 CSV 格式文件里面的中文仍然显示乱码;而 PDF 文档则已经“内嵌”了中文字体,所以不受操作系统的影响,在任何电脑上都能正常显示中文。

给你的瑞典语操作系统安装一些中文字体就能解决。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论