壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12785|回复: 30

我的weberp实战手册(四)mysql, pdf 的中文输出---Unicode

    [复制链接]
发表于 2007/12/21 17:38:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
这真是一件令人抓狂的事情,花了我快三天的时间。 如何在Mysql和PDF输出中文,而且是繁简体并存。做法如下:

1: 修改 ./includes 底下的header.inc

   第10行,原本的iso-xxxx改成utf8
   header('Content-type: text/html; charset=' ._('utf8'));
   还有第18行,原本的iso-xxxx改成utf8
   echo '<meta http-equiv="Content-Type"c#ff0000">utf8') . '">';
   这样所有的网页都是uft8了

2:把database里面filed的Collation需要用到中文的统统改成utf8_unicode_ci

  3:在ConnectDB_mysql.inc第14行左右的  if (!mysql_select_db($_SESSION['DatabaseName'],$db))。。。。。程序区块的后面插入以下内容:
mysql_query("set names utf8;");
这样在phpmyadmin看到的资料就不是乱码了。可是还有个问题啊。。。输出PDF还是乱码。。。

4:输出PDF中文乱码,网路上看到很多解决方式
    4.1:http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142,FPDF的论坛,内容太多,看到我头昏。也没找到解决方式
     4.2:http://blog.cjcht.com/index.php/henry/2007/09/06/ampa_yc_sesppdf,chinese-unicode.php要修改,而且class是一个extends一个,有点复杂,而且说明得不够详细。不过这位仁兄有个建议很好,引述如下:

“建議使用AddUniGBhwFont()而不要用AddUniCNShwFont()。因為簡體字型裏包含了繁體字型,用AddUniGBhwFont()產生繁體中文內容的pdf文件也不會有問題。如果用AddUniCNShwFont()產生簡體中文內容的pdf文件,雖然閱讀器安裝了簡體字型,但是閱讀器會把它當成繁體文件,而使用繁體字型顯示,造成一些簡體字顯示不出來。“
     4.3:http://job.achi.idv.tw/?p=461,后来用了这个方式,终于可以了。简单好用,只要两个档案,class.pdf.php,FPDF_Chinese.php..真是太棒了,,谢谢这位仁兄,做法如下:

   5: 到http://job.achi.idv.tw/?p=461,下载includes.rar 。解压缩到./includes底下,,,然后开始来修改

    5.1:打開class.pdf.php,把第21行的 if($_SESSION['Language'] =='zh_TW.UTF-8') 注解掉,,这个是多余的。

    5.2:在第49行 和82 行if($_SESSION['Language'] == 'zh_TW.UTF-8')改成你登入帐号的Language,,我就改成了if($_SESSION['Language']== 'zh_HK')

    5.3:把55行的$this->AddUniCNShwFont('uni');注解掉,底下加一行
      $this->AddUniGBhwFont('uni'); 这就是上面那位仁兄建议的。用简体字型来显示繁简体。。真的有效哦。

    5.4:在第327行和337行的字形AdobeSongStd-Light ,改成AdobeSongStd-Light-Acro,,这样格式才会整齐,英文字不会挤在一起

       如果要换字型,可以修改底下几个function,
        function AddUniCNShwFont
        function AddUniCNSFont
        function AddUniGBhwFont
        function AddUniGBFont

  喝茶去了,累死我了。如果有疏漏之処,請不吝賜教

   Part II

  如果Client 端是Ubuntu 7.10 Gnome,打开PDF时是一片空白。。解决如下:

  在weberp打完PO,系统预设用Evince打开PDF档,一片空白。应该是没有安装中文字型.还是安装Acrobatreader好了。用Synaptic package manager安装。中文字型要到这里来下载http://www.adobe.com/tw/products/acrobat/acrrasianfontpack.html,然后extract 到 /usr/lib/Adobe/Reader8/底下。进入/usr/lib/Adobe/Reader8/CHSKIT,然后执行 sudo ./INSTALL,系统会问你 Enter the location where you installed the Adobe Reader[/opt] ,输入 /usr/lib 就安装好了,繁体和日文也是这样做的

  如果用Firefox打开PDF,系统会问你openwith,就选择others...然后选择 /usr/lib/Adobe/Reader8/bin/acroread-en即可

  看到中文了吧,哈哈哈哈

Part III  另一个乱码问题:
在modify items detail的时候,发现Part description (short) 变成乱码,办法如下:

修改 Stocks.php 第550行
echo'<TR><TD>'. _('Part Description') . ' (' . _('short') .'):</TD><TD><inputtype="Text" name="Description" SIZE=52 MAXLENGTH=50 value="' .htmlentities($_POST['Description'],ENT_QUOTES,_('ISO-8859-1')) .'"></TD></TR>';

将 ISO-8859-1 改成 utf-8 。 不然,在mysql能看到中文,到這里会变乱码


参考资料:
1:http://www.web745.com/article_html/2006/09/433.html
2:http://job.achi.idv.tw/?p=461
3:http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142
4:http://blog.cjcht.com/index.php/henry/2007/09/06/ampa_yc_sesppdf

[ 本帖最后由 daangenji 于 2008-9-7 11:33 编辑 ]
发表于 2007/12/23 15:18:14 | 显示全部楼层
把文件传上来,那网站注册不了
发表于 2007/12/25 10:12:48 | 显示全部楼层
问题的确解决了。我把其它的文件传上来。这里感谢daangenji的不懈努力。
这个可以作为圣诞礼物了。


zn_cn是utf8的中文汉化

webERP3071utf8是数据库文件包含新的科目表。在308下还要运行3071to308的升级,weberp的sql目录下有。


除了上面dannagenji说的修改外,还要修改的文件有
includes\headre.inc     ( 这是规定网页用utf8显示)
10     header('Content-type: text/html; charset=' . _('utf8'));
18     echo '<meta http-equiv="Content-Type" c>';


includes\ConnectDB_mysql.php   (这里规定mysql的连接用utf8)

21    mysql_query("set names utf8;");

[ 本帖最后由 simonz 于 2007-12-25 10:18 编辑 ]

includes.rar

8.27 KB, 下载次数: 110, 下载积分: 努力值 -5 点

zh_CN.zip

264.97 KB, 下载次数: 88, 下载积分: 努力值 -5 点

weberp3071utf8.zip

18.28 KB, 下载次数: 63, 下载积分: 努力值 -5 点

 楼主| 发表于 2007/12/25 14:40:29 | 显示全部楼层
谢谢Simonz把档案传上来,我刚刚才知道如何上传档案的,,,下次我会注意的.祝各位圣诞快乐!!
发表于 2007/12/25 16:49:45 | 显示全部楼层
你也太强了。
发表于 2008/1/2 10:12:16 | 显示全部楼层
谢谢Simonz把档案传上来
发表于 2008/1/2 10:13:41 | 显示全部楼层
谢谢Simonz把档案传上来
发表于 2008/1/23 14:56:02 | 显示全部楼层
希望能够解决乱码问题!
发表于 2008/4/17 08:53:48 | 显示全部楼层
:/fendou
发表于 2008/9/6 13:26:22 | 显示全部楼层
此篇一定要收藏
 楼主| 发表于 2008/9/7 11:35:58 | 显示全部楼层
哈哈,,谢谢eremiter的支持,我用了weberp将近一年了。有些地方還是不符合需求,一直陆陆续续在修改,希望大家贡献聪明才智让开源的软件更完备
发表于 2008/10/22 20:16:07 | 显示全部楼层
楼主用的是什么系统?
发表于 2008/10/23 16:54:19 | 显示全部楼层
最近也開始接觸weberp看到這篇文章終於解決pdf亂瑪的問題了
目前還在學習中^^
发表于 2008/11/10 02:02:13 | 显示全部楼层

要点数 下载不了

发表于 2008/11/11 16:41:09 | 显示全部楼层
还是有点不解啊
发表于 2009/2/4 15:51:27 | 显示全部楼层
我是新手, 请问谁有没有 webERP 文档啊,   我自己搭建了这个系统, 可是不知如何用它.
发表于 2009/4/6 14:15:50 | 显示全部楼层
5.3:把55行的$this->AddUniCNShwFont('uni');注解掉,底下加一行
      $this->AddUniGBhwFont('uni'); 这就是上面那位仁兄建议的。用简体字型来显示繁简体。。真的有效哦。


uni是什么字体呢?
发表于 2009/4/26 21:51:57 | 显示全部楼层
辛苦了
发表于 2009/9/19 15:19:29 | 显示全部楼层
全部改为gbk就没看到乱码了
发表于 2009/9/25 16:51:54 | 显示全部楼层
DEAR 大大:
不知道大大有沒有遇到過在uGB中的英文部分,I的大小寫
都會跟其他的英文字的間距比較寬,不知道有沒有解決方法?如果
用setFont("arial")字型的話,ㄊ的字更大且間距更大,不知道
大大有沒有好方法提供呢?謝謝!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 07:11 , Processed in 0.022936 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表