2014-03-06 95 views
0

我有一個帶有圖表(FusionChart)的網頁,我試圖下載一張帶有圖表的PowerPoint幻燈片 - PowerPoint將其識別爲圖表,以便它可以讓用戶編輯圖表屬性(即:不圖片)。PHPPowerPoint圖表損壞?

爲此,我下載了PHPPowerPoint。經過多次發佈後,包括路徑地獄,以及許多嗷嗷待哺的牙齒,我終於有了工作。有點。它產生如下:

enter image description here

正如你所看到的,圖是錯位的,它是空的。這裏的放大圖表,讓你可以更清楚地看到它:

enter image description here

考慮所有的事情錯這個庫及其完全缺乏文檔,我傾向於認爲這是壞了。然而,人們似乎正在使用這個,因此假設我做錯了事情會更安全。

下面的代碼片段。我做錯了什麼?或者,有沒有PHPPowerPoint的免費替代品?我所關心的只是導出圖表,所以功能非常有限(Bar,Column &帶有標題的餅圖)就是我所需要的。

$objPHPPowerPoint = new PHPPowerPoint(); 
$objPHPPowerPoint->removeSlideByIndex(0); 
$currentSlide = $objPHPPowerPoint->createSlide(); 
$series = new PHPPowerPoint_Shape_Chart_Series('', array(
    'A' => 69, 
    'B' => 5, 
    'C' => 5, 
    'D' => 3, 
    'E' => 2 
)); 
$series->setShowSeriesName(true); 
$bar3DChart = new PHPPowerPoint_Shape_Chart_Type_Bar3D(); 
$bar3DChart->addSeries($series); 
$shape = $currentSlide->createChartShape(); 
$shape->setResizeProportional(false); 
$shape->setOffsetX(0); 
$shape->setOffsetY(0); 
$shape->setHeight(550); 
$shape->setWidth(800); 
$shape->getTitle()->setText($matrix[0][$graphCol]); 
$shape->getPlotArea()->setType($bar3DChart); 
$objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint,'PowerPoint2007'); 
$objWriter->save('php://output'); 

在此先感謝。

+0

您將圖表添加到PowerPoint對象的位置? – vascowhite

+0

我想我不是;這只是一個重新制作的樣本,我認爲這是正確的。這也很有趣,因爲我對此感到驚訝,並且假設將它設置爲$形狀會起到訣竅的作用,但是$ shape的添加位置在哪裏。你能指點我正確的方法嗎?如果你知道任何有關這件事的文件,我會非常感激! –

+0

我對這個類並不熟悉,但是我會首先查找addGraph或類似命名方法的源代碼。 – vascowhite

回答

0

再回答我的問題:)

我放棄PHPPowerPoint和使用OpenTBS我來代替:http://www.tinybutstrong.com/plugins/opentbs/tbs_plugin_opentbs.html

這是一個有趣的PHP模板基礎的系統,超越了簡單建築的MS Office和OpenOffice文件。

它的工作方式是創建模板文件,然後使用庫替換模板中的部分。這足以滿足我的目的,並且可以輕鬆地爲不同類型的導出創建模板骨架。