TeeChart for PHP包含100%的PHP源代码。它支持PHP5及更高的版本。它可作为一个调色板组件整合到针对PHP的Delphi编程环境中,从而让其他人在运行时以创建组件的方式来引用。第一个版本提供17种图表类型(2D和3D的多种组合),11个数学函数和一些图表工具组件以扩展功能。
本教程是TeeChart for PHP教程中图表的导出和导入这一节。本章节的内容主要介绍如何以各种格式导出TeeCharts并导入TeeChart自己的.tee格式图表模板。
-
导出图表
可用格式
-
导出图像
JPEG
GIF
PNG
-
导出数据
文本
XML
-
TeeChart的Tee模板和数据导出导入格式
Tee文件
-
导入
导入Tee格式文件
示例导入Tee文件
导出图表
可用的导出格式
可以将所有格式复制到文件或剪贴板或流中。
图像格式
-
JPEG:JPEGFormat类
-
GIF:GIFFormat类
-
PNG:PNGFormat类
-
WBMP:WBMPFormat类
数据格式
-
Text:TextFormat类
-
XML:XMLFormat类
-
HTML:HTMLFormat类
-
Excel:ExcelFormat类
其他格式
Tee格式是一种灵活的格式,可存储图表属性信息和(可选)图表数据。它的文件很小(取决于数据),非常适合网络用于更新基于实时客户端的图表。
示例导出
可以合理导出到文件,在大多数情况下,您只需要定义目标文件名。
With SaveDialog1 do
if Execute then Chart1.SaveToBitmapFile(SaveDialog1.FileName);
JPG
JPEG文件导出具有速度和质量的附加参数。
$tmpResult = fc.showSaveDialog(JpegExportDemo.this);
if (tmpResult == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String tmpName = file.getAbsolutePath();
if (!ExportUtils.isExtension(file, ExportUtils.JPG)) {
tmpName = ExportUtils.replaceExtension(file, ExportUtils.JPG);
}
myChart.getExport().getImage().getJPEG().save(tmpName);
}
性能,jpegBestQuality和压缩质量百分比(高值减去压缩)的存在将使文件更大,导出花费的时间会更长,但是导出的效果会更好,可以根据自己的需求来选择。
GIF
TeeChart提供了创建GIF图表图像的方法,但您应该使用Unisys检查您的许可位置,以便使用GIF LZW编码图像。替代RLE编码不受Unisys许可的约束。
int tmpResult = fc.showSaveDialog(GifExportDemo.this);
if (tmpResult == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String tmpName = file.getAbsolutePath();
if (!ExportUtils.isExtension(file, ExportUtils.GIF)) {
tmpName = ExportUtils.replaceExtension(file, ExportUtils.GIF);
}
myChart.getExport().getImage().getGIF().save(tmpName);
}
PNG
PNG格式保留了GIF格式的许多优点,但也提供了超出GIF格式的功能。PNG改进了GIF逐步显示图像的能力,也就是说,当图像通过网络连接到达时,能够显示更好的图像近似值。
int tmpResult = fc.showSaveDialog(PngExportDemo.this);
if (tmpResult == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String tmpName = file.getAbsolutePath();
if (!ExportUtils.isExtension(file, ExportUtils.PNG)) {
tmpName = ExportUtils.replaceExtension(file, ExportUtils.PNG);
}
myChart.getExport().getImage().getPNG().save(tmpName);
}
导出数据
以下示例以Text或XML格式从Chart Series导出的数据。它们可以创建并与图表系列相关联,从中可以将数据导出为文件,流或剪贴板。
文本文件
try {
$myChart->getExport()->getData()->getText()->save($tmpName);
}
XML文件
try {
$myChart->getExport()->getTemplate()->toXML($tmpName);
$showSavedFile(tmpName);
}
TeeChart的Tee模板和数据导出/导入格式
Tee文件
Tee文件是TeeChart自己的模板格式,用于保存图表及其数据,并在Java IDE中具有.tej的扩展名。修改的图表属性随模板一起保存,并在将模板导入新图表时重现。
好处:
-
Tep文件的大小非常小,在大多数情况下,它比纯图形格式(Quicker)更具优势。
-
模板的目标图表是实时,可以进行缩放和滚动,并修改其属性。
-
根据您的喜好,可以选择是否将数据包含在Tee模板中。
try {
$tChart1->getExport()->getTemplate()->toFile("/temp/chart1.tep");
} catch (IOException ex1) {
ex1.printStackTrace();
}
导入
从URL导入XML,显示如何从/向xml导出和加载的示例:
Save to xml;
try {
$myChart->getExport()->getTemplate()->toXML($tmpName);
showSavedFile($tmpName);
} catch (FileNotFoundException $e) {
System.out.println(e);
}
Load from xml:
try {
$myChart->setChart($myChart->getImport()->getTemplate()->fromXML($tmpName));
$myChart->repaint();
}
catch (FileNotFoundException $e) {
System.out.println(e);
}
导入Tee格式文件
从本地文件源或http数据源导入已保存的文件。导入示例:
import from file
$tChart1->getImport()->getTemplate()->fromFile("myFile.tep");
or
XML..
$tChart1->getImport()->getTemplate()->fromXML("myFile.xml");
or
Stream..
try {
//( 1) Save the template into a Stream...
ByteArrayOutputStream m = new ByteArrayOutputStream();
$myChart->getExport()->getTemplate()->toStream($m);
//( 2) Load the template into other Chart...
$copyChart->setChart($copyChart->getImport()->getTemplate()->fromStream(
new ByteArrayInputStream(m.toByteArray())
));
//( 3) repaint the Chart
$copyChart->repaint();
} catch (IOException $ex) {
System.out.println(ex);
} catch (ClassNotFoundException $ex) {
System.out.println(ex);
}
本节教程就到这里了,下一章我们将会介绍如何在图表面板上自定义绘图。