我的要求是拆分ppt/pptx文件,然後合併特定的幻燈片。使用COM和PHP合併/創建PowerPoint幻燈片幻燈片
我已經使用PHP COM成功將ppt/pptx文件拆分爲單獨的幻燈片。現在我想使用一些PHP庫加入/合併幻燈片。
但是,似乎除了PHPPowerpoint之外似乎沒有一個。
我可以使用PHPPowerpoint創建幻燈片並使用它添加文本節點/圖像,但它無法讀取現有的.ppt/pptx文件並創建合併輸出。
還有別的辦法嗎?我將不勝感激任何幫助。
編輯: 我能夠合併幻燈片,但不正確..背景顏色/排序順序仍然缺失。請幫助,因爲有除了這個鏈接這個網站上的引用 -
http://msdn.microsoft.com/en-us/library/office/ff746640%28v=office.15%29.aspx
這裏是代碼 -
//SET Max exec time
ini_set("max_execution_time",-1);
$directory = 'c:/ppt/slides/';
$files_list = array_diff(scandir($directory,SCANDIR_SORT_DESCENDING), array('..', '.')); //Get list of all files from the sub slides folder
//var_dump($files_list); die;
$ppt_new = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint 2");
$ppt_new->Presentations->Add(true); //Create the new(merged) ppt
$dirpath = "C:/ppt/slides/";
$ppt_new->Presentations[1]->Slides->Add(1, 1);
foreach($files_list as $file) { //Loop through all slides to merge those
$powerpnt = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint");
echo "Adding slide...";
echo $file_path1 = realpath($dirpath.$file);
$pres = $powerpnt->Presentations->Open($file_path1, false, false, false) or die("Unable to open the slide");
echo $count = (int)$pres->Slides->Count."<--SLIDES COUNT<br>";
$i=1;
foreach($pres->Slides as $slide)
{
try {
$pptLayout = $slide->CustomLayout;
// var_dump($pptLayout); die;
// $ppt_new->Presentations[1]->Slides[$i]->FollowMasterBackground = false;
// $ppt_new->Presentations[1]->Slides[$i]->Background = $slide->Background;
//$ppt_new->Presentations[1]->Slides->Layout = $pptLayout;
$ppt_new->Presentations[1]->Slides->InsertFromFile($file_path1, $i, $i, $i);
// $ppt_new->Presentations[1]->SaveAs("merged11.ppt");
// $ppt_new->Export("created.ppt", "ppt");
$i++;
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
}
//Save the merged presentation
$powerpnt->quit();
$ppt_new->Presentations[1]->SaveAs("c:\ppt\merged121.ppt");
$ppt_new->Presentations[1]->Close();
$ppt_new->quit();
echo "Done!";
任何人都可以請運行該代碼,並發現爲什麼背景沒有進入合併幻燈片? 已經感謝。
因爲PHPPowerPoint不能用於你想要的東西;它看起來像你必須使用COM(如果你在Windows服務器上),或者打開/自由辦公室與[PUNO](http://www.wstech2.net/index.php?do=0a,01 ,05) –
@MarkBaker您可以使用COM提供示例嗎?我無法找到合併ppts的人 –
我不使用COM,因此我不能舉一個例子:作爲PHPOffice套件庫(包括PHPPowerPoint)背後的開發團隊之一,我相信使用我自己的代碼,我還沒有任何需要合併幻燈片從 –