0

我正在尝试在 PDF 导出报告中显示融合 3D 饼图。为此,我的目标是创建图表的图像并在图表渲染后自动将其保存在服务器中,以便我可以在我的 pdf 文件中调用该图像。我已经设置了导出的图表参数,如下面的代码 <chart caption='testchart' exportEnabled='1' exportAtClient='0' exportAction='save' exportFileName='testimage'exportHandler='http://mysite.com/pdf/getChartExported'>

在我的导出处理程序文件中,我还设置了“SAVE_PATH”和“HTTP_URI”常量的路径。

我的问题是 1. 页面加载后我将如何导出图表并将其另存为图像 2. 在导出处理程序中我得到错误(我正在使用 Codeigniter)

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: libraries/FCExporter.php

Line Number: 304
 DOMId=
 height=0
 width=0
 fileName=
 statusMessage= Export Resource not found.
 statusCode=0

当我检查全局变量$defaultParameterValues在 FCExport 处理程序文件函数中为空时parseExportParams()

最近几天我一直在做这个。请帮帮我

4

1 回答 1

1

不知何故,我不确定如何以及为什么,因为我不知道您是否修改了代码的任何部分,即 global $defaultParameterValues,我发​​现 php 文件定义如下:

$defaultParameterValues = array( 
"exportfilename"       => "FusionCharts",
"exportaction"         => "download",
"exporttargetwindow"   => "_self",
"exportformat"         => "PDF"
);  

没有在函数内部被引用parseExportParams,因此得到一个无法迭代的未定义数组!!

解决此问题的一种方法是FCExporter.php从 FusionCharts 包中获取原始文件,然后将其替换为您自己的文件或对这两个文件进行比较,以检查您是否在任何地方修改了任何破坏此文件的内容。

另一种方式是:

检查是否$defaultParameterValues是一个数组,如果不是 - 实例化它。

if (!isset($defaultParameterValues)) {
$defaultParameterValues = array();
} 

同时,还有另一种方法可以使用默认值扩展参数:

修改parseExportParams 替换现有的:

foreach ( $defaultParameterValues as $key => $value )
{
    // if a parameter from the default parameter array is not present
    // in the $params array take the parameter and value from default
    // parameter array and add it to params array
    // This is needed to ensure proper export  
    $params [$key ] =  @$params[$key ] ? $params[$key ] : $value ;
}

if (isset($defaultParameterValues) && is_array($defaultParameterValues)) {
    $params = $params + $defaultParameterValues;
} 
于 2012-12-20T12:13:13.697 回答