把windows下的simhei.ttf,simsun.ttc上传到服务器上,并且目录设置jpgraph.php 已经把目录设置为ttf本身的目录if (!defined('TTF_DIR')) {
    if (strstr( PHP_OS, 'WIN') ) {
$sroot = getenv('SystemRoot');
        if( empty($sroot) ) {
    $t = new ErrMsgText();
    $msg = $t->Get(12,$file,$lineno);
    die($msg);
        }
else {
  DEFINE('TTF_DIR', $sroot.'/fonts/');
        }
    } else {
DEFINE('TTF_DIR','/test/jpg/ttf/');
    }
}jpgraph_ttf.inc.php 文件做了以下修改
  /* Chinese fonts */
    FF_SIMSUN  =>  array(FS_NORMAL =>'simsun.ttc',  
  FS_BOLD =>'simsun.ttc',   
  FS_ITALIC =>'',   

运行测试程序的时候,会提示 sumsun.ttc不存在或不可读,是什么原因?以下为测试程序的源代码:<?php 
 include('./jpg/jpgraph.php'); //include Graph类 
 include('./jpg/jpgraph_line.php'); //include LinePlot 类 
  
$data = array(16 , 23 , 34 ,46, 58 , 39 , 65, 80 , 74); //红线数据数组
  
$graph = new Graph(400 ,300); //创建新的Graph对象,图片长:400px,宽300px 
  
$graph->SetScale("textlin"); //设置刻度模式 
  
$graph->img->SetMargin(30 , 30 , 80 , 30) ; //设置图表边界 
  
$graph->title->Set("jpgraph.cn中文站线形图表演示") ; //设置图表标题 
  
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); // 设置标题中文字体 
$graph->legend->SetFont(FF_SIMSUN,FS_BOLD); //设置线条指示字体
  
$lineplot = new LinePlot($data); //创建新的LinePlot对象 
  
$lineplot->SetLegend("红线");//设置图例文字 
  $lineplot->SetColor("red"); //设置曲线颜色 
  
$graph->Add($lineplot); //在统计图上绘制曲线 
  
$data2 = array(20 ,30 ,35 , 56 , 45 , 68 , 59 , 79 , 90); //蓝线数据数组
  
$lineplot = new LinePlot($data2); //创建新的LinePlot对象 
  
$lineplot->SetLegend("蓝线");//设置图例文字 
  
$lineplot->SetColor("blue"); //设置曲线颜色 
  
$graph->Add($lineplot); //在统计图上绘制曲线 
  
$graph->Stroke() ; //输出图像 
  
?>

解决方案 »

  1.   

    估计是权限的问题吧
    chmod 成 666 试试看
      

  2.   

    可能是safe_mode的问题,
    safe_mode_include_dir中添加字体的保存目录看看。
      

  3.   

    我怎样设置safe_mode?程序问题就在以下语句:$graph->title->SetFont(FF_SIMSUN,FS_BOLD); // 设置标题中文字体 
    $graph->legend->SetFont(FF_SIMSUN,FS_BOLD); //设置线条指示字体 如果把这2句去掉,图可以生成,就是中文是乱码,因此还是中文设置的问题,网上找了些,但没解决
      

  4.   

    在php.ini里面设定,
    如果没有服务器管理权限的,
    就把字体文件放到可以访问到的目录。