PowerPointExport.txt load-library('PHPPowerpoint');//$this-load-library('PHPPowerpoint/IOFactory');// Create new PHPPowerPoint object$objPHPPowerPoint = new PHPPowerPoint();// Set properties//echo date('H:i:s') . " Set properties\n";$objPHP
load->library('PHPPowerpoint');
//$this->load->library('PHPPowerpoint/IOFactory');
// Create new PHPPowerPoint object
$objPHPPowerPoint = new PHPPowerPoint();
// Set properties
//echo date('H:i:s') . " Set properties\n";
$objPHPPowerPoint->getProperties()->setCreator("Maarten Balliauw");
$objPHPPowerPoint->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPPowerPoint->getProperties()->setTitle("Office 2007 PPTX Test Document");
$objPHPPowerPoint->getProperties()->setSubject("Office 2007 PPTX Test Document");
$objPHPPowerPoint->getProperties()->setDescription("Test document for Office 2007 PPTX, generated using PHP classes.");
$objPHPPowerPoint->getProperties()->setKeywords("office 2007 openxml php");
$objPHPPowerPoint->getProperties()->setCategory("Test result file");
// Remove first slide
//echo date('H:i:s') . " Remove first slide\n";
$objPHPPowerPoint->removeSlideByIndex(0);
// Create templated slide
//echo date('H:i:s') . " Create templated slide\n";
$currentSlide = $this->createTemplatedSlide($objPHPPowerPoint); // local function
// Create a shape (text)
//echo date('H:i:s') . " Create a shape (rich text)\n";
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(200);
$shape->setWidth(800);
$shape->setOffsetX(400);
$shape->setOffsetY(200);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
//$textRun->getFont()->setBold(true);
//$textRun->getFont()->setSize(28);
//$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$textRun = $shape->createTextRun('松原市震后模拟房屋受损情况汇报');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(60);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$shape->createBreak();
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(50);
$shape->setWidth(400);
$shape->setOffsetX(1000);
$shape->setOffsetY(600);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
$textRun = $shape->createTextRun('----汇报人:xxx');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(28);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
// Create templated slide
//echo date('H:i:s') . " Create templated slide\n";
$currentSlide =$this->createTemplatedSlide($objPHPPowerPoint); // local function
// Create a shape (text)
//echo date('H:i:s') . " Create a shape (rich text)\n";
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(100);
$shape->setWidth(930);
$shape->setOffsetX(300);
$shape->setOffsetY(100);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
$textRun = $shape->createTextRun('1.松原市震后模拟房屋受损情况');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(48);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
// Create a shape (text)
//echo date('H:i:s') . " Create a shape (rich text)\n";
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(400);
$shape->setWidth(930);
$shape->setOffsetX(300);
$shape->setOffsetY(200);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
date_default_timezone_set('PRC'); //时间定位于北京时间,除去此函数可以在php.ini修改配置文件
$year = date("Y");
$month = date("m");
$day = date("d");
$hour = date("H");
$minute = date("i");
$second = date("s");
$startX = $_POST['startX'];
$startY = $_POST['startY'];
$intensity = $_POST['intensity'];
$textRun = $shape->createTextRun('- '.$year.'年'.$month.'月'.$day.'日'.$hour.'时'.$minute.'分'.$second.'秒发生'.$intensity.'级地震');
$textRun->getFont()->setSize(36);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$shape->createBreak();
$shape->createBreak();
$textRun = $shape->createTextRun('- 震中位于松原市东经'.$startX.',北纬'.$startY.'');
$textRun->getFont()->setSize(36);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$shape->createBreak();
$shape->createBreak();
$textRun = $shape->createTextRun('- 震区烈度圈、震区房屋破坏分布情况及房屋破坏占比情况见如下');
$textRun->getFont()->setSize(36);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$currentSlide =$this->createTemplatedSlide($objPHPPowerPoint); // local function
// Add the first image
$shape = $currentSlide->createDrawingShape();
$shape->setName('Background');
$shape->setDescription('Background');
$shape->setPath('./public/screen_images/A201703311606.jpg');
$shape->setWidth(1000);
$shape->setHeight(500);
$shape->setOffsetX(300);
$shape->setOffsetY(100);
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(50);
$shape->setWidth(300);
$shape->setOffsetX(700);
$shape->setOffsetY(600);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
$textRun = $shape->createTextRun('震区烈度圈图');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(20);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$currentSlide =$this->createTemplatedSlide($objPHPPowerPoint); // local function
// Add the first image
$shape = $currentSlide->createDrawingShape();
$shape->setName('Background');
$shape->setDescription('Background');
$shape->setPath('./public/screen_images/B201703311606.jpg');
$shape->setWidth(1000);
$shape->setHeight(500);
$shape->setOffsetX(300);
$shape->setOffsetY(100);
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(50);
$shape->setWidth(400);
$shape->setOffsetX(700);
$shape->setOffsetY(600);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
$textRun = $shape->createTextRun('震区房屋破坏分布情况图');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(20);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
$currentSlide =$this->createTemplatedSlide($objPHPPowerPoint); // local function
// Add the first image
$shape = $currentSlide->createDrawingShape();
$shape->setName('Background');
$shape->setDescription('Background');
$shape->setPath('./public/screen_images/C201703311606.jpg');
$shape->setWidth(1000);
$shape->setHeight(500);
$shape->setOffsetX(300);
$shape->setOffsetY(100);
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(50);
$shape->setWidth(400);
$shape->setOffsetX(700);
$shape->setOffsetY(600);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
$textRun = $shape->createTextRun('房屋破坏占比情况图');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(20);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF3030' ) );
// Save PowerPoint 2007 file
//echo date('H:i:s') . " Write to PowerPoint2007 format\n";
$objWriter = IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');
//$objWriter->save(str_replace('.php', '.pptx', __FILE__));
$date = date('YmdHis');
$savefile = './public/PPT/'.$date.'.pptx';
$objWriter->save($savefile);
echo $savefile;
// Save File
// $objWriter = IOFactory::createWriter($PHPWord, 'Word2007');
// $date = date('YmdHis');
// $savefile = './public/Word/'.$date.'.docx';
// $objWriter->save($savefile);
// echo $savefile;
}
/**
* Creates a templated slide
*
* @param PHPPowerPoint $objPHPPowerPoint
* @return PHPPowerPoint_Slide
*/
public function createTemplatedSlide(PHPPowerPoint $objPHPPowerPoint)
{
// Create slide
$slide = $objPHPPowerPoint->createSlide();
// Add background image
$shape = $slide->createDrawingShape();
$shape->setName('Background');
$shape->setDescription('Background');
$shape->setPath('./public/ppt_images/background.png');
$shape->setWidth(800);
$shape->setHeight(720);
$shape->setOffsetX(0);
$shape->setOffsetY(0);
// Add logo
$shape = $slide->createDrawingShape();
$shape->setName('PHPPowerPoint logo');
$shape->setDescription('PHPPowerPoint logo');
$shape->setPath('./public/ppt_images/cidp.png');
$shape->setHeight(150);
$shape->setWidth(150);
$shape->setOffsetX(10);
$shape->setOffsetY(720 - 20 - 40-100);
// Return slide
return $slide;
}
//发送标题强制用户下载文件
public function sefile(){
$data = $_GET[zdx];
$filename = $data;
header('Content-Type: application/octet-stream');
header('content-disposition:attachment;filename='.basename($filename));
header('content-length:'.filesize($filename));
readfile($filename);
unlink($filename);
}
}
