首页 > 编程语言 >libchart PHP下的统计图表类库-中文乱码解决方案

libchart PHP下的统计图表类库-中文乱码解决方案

时间:2023-08-15 15:34:50浏览次数:38  
标签:类库 img text libchart 乱码 new ttf

libchart PHP下的统计图表类库-中文乱码解决方案

libchart默认对中文支持不太友好,当我们在图表中使用中文时会变成乱码

如果想要解决中文码问题,也是很简单的,在windows下搜索中文字体,搜索ttf开头的字体文件,放在libchart源码font目录下,再将源码修改下就能正常显示了


乱码示例

libchart PHP下的统计图表类库-中文乱码解决方案_html

示例

<?php
	include "../libchart/classes/libchart.php";
	$chart = new VerticalBarChart();
	$dataSet = new XYDataSet();
	$dataSet->addPoint(new Point("就绪", 10));
	$dataSet->addPoint(new Point("示忙", 2));
	$dataSet->addPoint(new Point("排队", 0));
	$dataSet->addPoint(new Point("振铃", 0));
	$dataSet->addPoint(new Point("通话", 3));
	$dataSet->addPoint(new Point("外呼", 1));	
	$chart->setDataSet($dataSet);

	$chart->setTitle("示例图表");
	$chart->render("generated/demo1.png");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Libchart vertical bars demonstration</title>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
</head>
<body>
	<img alt="Vertical bars chart" src="generated/demo1.png" style="border: 1px solid gray;"/>
</body>
</html>

解决步骤

查找字体文件

查找*ttf,看见上面显示简体字一般都是中文字体

libchart PHP下的统计图表类库-中文乱码解决方案_html_02

将找到的字体文件复制到libchart/font目录下

libchart PHP下的统计图表类库-中文乱码解决方案_sed_03

修改步骤

打开libchart/classes/view/text/text.php

字体引用修改

在构造函数 public function Text()将

 $this->fontCondensed = $baseDir . "fonts/DejaVuSansCondensed.ttf";
 $this->fontCondensedBold = $baseDir . "fonts/DejaVuSansCondensed-Bold.ttf";         

改为

 //中文字体            
 $this->fontCondensed = $baseDir . "fonts/Deng.ttf";
 $this->fontCondensedBold = $baseDir . "fonts/DengB.ttf";

标题乱码的修改

标题文字修改

printText函数打印图表标题文字

$this->printText($img, imagesx($img) / 2, $py, $color, $text, $fontFileName, $this->HORIZONTAL_CENTER_ALIGN | $this->VERTICAL_CENTER_ALIGN);

改为 

$str = iconv('gb2312','utf-8',$text);//解决乱码问题
$this->printText($img, imagesx($img) / 2, $py, $color, $str, $fontFileName, $this->HORIZONTAL_CENTER_ALIGN | $this->VERTICAL_CENTER_ALIGN);

底部标签文本

printCentered函数打印底部标签文本

imagettftext($img, $fontSize, $angle, $px, $py, $color->getColor($img), $fontFileName, $text);

改为

 $str = iconv('gb2312','utf-8',$text);//解决乱码问题
 imagettftext($img, $fontSize, $angle, $px-5, $py+12, $color->getColor($img), $fontFileName, $str );

 在这里将字体改为 $fontSize = 18;

取消文字角度 $angle = 0;

其它一些用到文本的地方如发现乱码,查找到相关文件进行修改即可

查看效果

查看前请记得清缓存,以免缓存看不到效果

libchart PHP下的统计图表类库-中文乱码解决方案_sed_04

标签:类库,img,text,libchart,乱码,new,ttf
From: https://blog.51cto.com/u_12668715/7089396

相关文章

  • Jenkins Console 页中文显示乱码的问题
    背景:JenkinsServer为Helm安装,使用的是Bitnami的chart,当前app版本为Jenkins2.401.2添加一台Agent,该Agent的语言默认为zh_CN.UTF-8Pipeline使用docker的形式运行每个任务。表现形式:在Jenkins管理页面添加并配置Agent,使用SSH方式连接Agent,在连接日志界面有......
  • 关于hive的字段注释乱码解决
    今天我发现我的DBeaver执行完sql后,表的注释乱码,深究下来是要去设置hive的编码,要不注释是乱码。教程:hive设置中文编码格式utf-8_hive建表指定字符集_2021xyz666的博客-CSDN博客......
  • 解决zabbix乱码问题
    上述的图标数据,下面的小白框表示乱码含义,是因为我们改了zabbix的语言为中文服务器需要安装字体[root@zabbix-server~]#yuminstall-ywqy-microhei-fonts[root@zabbix-server~]#cp/usr/share/fonts/wqy-microhei/wqy-microhei.ttc/usr/share/fonts/dejavu/DejaVuSans......
  • IDEA/Android Studio的gradle控制台输出中文乱码问题解决
    原文地址:IDEA/AndroidStudio的gradle控制台输出中文乱码问题解决-Stars-One的杂货小窝在项目中,有使用到Gradle自定义脚本,会有些输出日志,但是输出中文就变成乱码了..本篇就介绍下解决方法乱码效果如下图所示步骤我是window系统,不知道其他系统会不会出现这个问题乱......
  • 关于dev c++显示中文不显示,乱码和生成的可执行文件中文乱码
    1.不显示中文工具----编译器选项----显示-----去掉底下的复选框(第一个consolas下面)2,运行窗口中文乱码方法:1、工具—编译选项2、在第一个框中填入-fexec-charset=gbk3、勾选“编译器加入以下命令”4、重新编译一次以后运行。  ......
  • ubuntu putty ntsysv 图形化命令界面 错位 乱码
    有待验证 ntsysv zhcon是工作在Linux控制台下的高效双字节中/日/韩(CJK)虚拟终端,就像DOS环境中的UCDOS一样,为控制台(console)环境提供完整的双字节语言环境。 apt-getinstallzhcon#adduser$(whoami)video#添加当前用户到video中zhcon--utf8#运行zhcon(注意:输入的是......
  • C# 使用另一个项目中的dll类库文件
     1.在项目资源管理器中找到引用,找对对应类库路径。2.复制该类库文件到另一个项目的Debug文件下。3.同样,在项目资源管理器中找到引用,右击添加引用在本项目Debug目录下找到要添加的类库文件。   ......
  • Idea 运行或调试模式,可以指定不同的类库(版本)目录,-Djava.library.path
    Idea不同的项目下运行或调试模式,可以指定不同的类库(版本)目录(可以避免系统变量影响不同项目引用不同版本),-Djava.library.path,如下图: ......
  • 前端shp文件写到本地时,原生的shp-write存在的不能写入多条数据及中文乱码问题
    shp-write·Doraemon22333/前端-码云-开源中国(gitee.com)参考(1)https://github.com/hwbllmnn/shp-write/tree/maintenance(2)https://blog.csdn.net/qq_37748236/article/details/131804606......
  • Wordpress:安装谷歌GTM代码出现页面崩溃乱码的原因
    独立站做好之后,需要安装谷歌GTM代码利于数据追踪。但是按照要求装上后,出现了页面乱码。查看代码,发现代码写在body标签之内了, 进入网站后台,使用主题编辑器查看发现低47行尾标有两个>;将GTM代码移出放在>>之后,保存文件刷新即可。 修改后:   ......