使用PHP创建 PowerPoint2007 文档
今天早上从订阅的 Zend DevZone 看到篇很有意思的文章. Creating PowerPoint 2007 files using PHP. 试了一下. 果然很又意思, 分享给大家吧.
程序需要 PHP 5.2 以上环境, 另外需要 php_zip 和 php_xml 扩展模块支持. 另外需要下载 PHPPowerPoint 类库. 官方网站地址: http://phppowerpoint.codeplex.com/ 目前稳定版本是 0.1.0
这里已经下载好了. 各位可以直接同示例代码一起在本站下载. 我已打好包. 点击这里下载示例包. 另外一个官方发原始包带了API文档还有官方的示例程序的也放出来 官方包下载.
说一下感觉吧. 这个类库还可以. 编码很规范. 完全PHP5的风格. 我喜欢的类型. 和 Zend Framework 一样. 处理速度也非常快. 本次只做了简单才测试. 更多高级功能未花时间去玩. 帖一下测试代码吧.
<ol class="dp-c"> <li class="alt"><span><span><?php </span></span></span></li> <li><span><span class="comment">/**</span> </span></li> <li class="alt"><span><span class="comment"> * PHP 生成 PowerPoint 2007 示例脚本.</span> </span></li> <li><span><span class="comment"> *</span> </span></li> <li class="alt"><span><span class="comment"> * 本程序需要 PHP 5.2 以上版本, 需要 php_zip 和 php_xml 扩展支持.</span> </span></li> <li><span><span class="comment"> * 通常WIN下程序只要打开 php_zip 扩展即可, php_xml 扩展内置支持.</span> </span></li> <li class="alt"><span><span class="comment"> * Linux 下需要根据编译条件具体调整.</span> </span></li> <li><span><span class="comment"> *</span> </span></li> <li class="alt"><span><span class="comment"> * @author: Guya</span> </span></li> <li><span><span class="comment"> * @since: 2009-4-30</span> </span></li> <li class="alt"><span><span class="comment"> */</span><span> </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//目录分割符号</span><span> </span></span></li> <li><span>define(<span class="string">'DS'</span><span>, DIRECTORY_SEPARATOR); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//定义根目录</span><span> </span></span></li> <li class="alt"><span>define(<span class="string">'ROOT'</span><span>, dirname(</span><span class="keyword">__FILE__</span><span>) . DS); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//修改include路径, PHPPowerPoint 包放在当前目录的 libs 目录下.</span><span> </span></span></li> <li><span>set_include_path(get_include_path() . PATH_SEPARATOR . ROOT . <span class="string">'libs'</span><span>); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//不限制脚本运行时间限制.</span><span> </span></span></li> <li class="alt"><span>set_time_limit(0); </span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//简单设置自动载入函数.</span><span> </span></span></li> <li><span><span class="keyword">function</span><span> __autoload(</span><span class="vars">$className</span><span>) { </span></span></li> <li class="alt"><span>????<span class="keyword">include_once</span><span>(</span><span class="func">str_replace</span><span>(</span><span class="string">"_"</span><span>, DS, </span><span class="vars">$className</span><span>) . </span><span class="string">".php"</span><span>);??</span></span></li> <li><span>} </span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//新建立一个 PHPPowerPoint 对象.</span><span> </span></span></li> <li class="alt"><span><span class="vars">$ppp</span><span> = </span><span class="keyword">new</span><span> PHPPowerPoint(); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//获取当前使用的一页幻灯片</span><span> </span></span></li> <li><span><span class="vars">$activeSlide</span><span> = </span><span class="vars">$ppp</span><span>->getActiveSlide(); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//添加一个图片到幻灯片.</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span> = </span><span class="vars">$activeSlide</span><span>->createDrawingShape(); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置图片名称.</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->setName(</span><span class="string">'MmClub.net Logo'</span><span>); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置图片的描述信息.</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->setDescription(</span><span class="string">'MmClub.net Logo'</span><span>); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//图片实际路径</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->setPath(ROOT . </span><span class="string">'mmclub.net.jpg'</span><span>); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//图片高度</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->setHeight(103); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置图片宽度</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->setWidth(339); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置图片相对于左上角X位置, 单位像素</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->setOffsetX(10); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置图片相对于左上角Y位置, 单位像素</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->setOffsetY(10); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置图显示状态</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->getShadow()->setVisible(true); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="vars">$shape</span><span>->getShadow()->setDirection(45); </span></span></li> <li><span><span class="vars">$shape</span><span>->getShadow()->setDistance(10); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置一个文本框</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span> = </span><span class="vars">$activeSlide</span><span>->createRichTextShape(); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置文本框高度, 单位像素</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->setHeight(150); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置文本框宽度, 单位像素</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->setWidth(600); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置文本框相对于左上角X位置, 单位像素</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->setOffsetX(150); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置文本框相对于左上角Y位置, 单位像素</span><span> </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->setOffsetY(200); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置文本布局位置为水平居中, 垂直居中.</span><span> </span></span></li> <li><span><span class="vars">$shape</span><span>->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER ); </span></span></li> <li class="alt"><span><span class="vars">$shape</span><span>->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER ); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置文本框文本内容. 在中文环境下测试没中文问题. 如果在 e 文环境. 注意要指定支持中文的字体. 否则可能出乱码了.</span><span> </span></span></li> <li><span><span class="vars">$textRun</span><span> = </span><span class="vars">$shape</span><span>->createTextRun(</span><span class="string">'欢迎使用 PHPPowerPoint2007'</span><span>); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//使用字体加粗</span><span> </span></span></li> <li class="alt"><span><span class="vars">$textRun</span><span>->getFont()->setBold(true); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//设置字体尺寸为 38, 这里注意一下文字的大小设置. 前面的文本框的大小是固定的. 如果文字超出的容器会被出容器被排到下面</span><span> </span></span></li> <li><span><span class="vars">$textRun</span><span>->getFont()->setSize(38); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//设置文字颜色, 这里是ARGB模式 , 16进制模式, 前面2位为透明度, 后面为RGB值. 这里设置为 blue蓝色</span><span> </span></span></li> <li class="alt"><span><span class="vars">$textRun</span><span>->getFont()->setColor( </span><span class="keyword">new</span><span> PHPPowerPoint_Style_Color( </span><span class="string">'FFFF0000'</span><span> ) ); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//下面再设置几个文本框</span><span> </span></span></li> <li><span><span class="vars">$shape0</span><span> = </span><span class="vars">$activeSlide</span><span>->createRichTextShape(); </span></span></li> <li class="alt"><span><span class="vars">$shape0</span><span>->setHeight(50); </span></span></li> <li><span><span class="vars">$shape0</span><span>->setWidth(400); </span></span></li> <li class="alt"><span><span class="vars">$shape0</span><span>->setOffsetX(250); </span></span></li> <li><span><span class="vars">$shape0</span><span>->setOffsetY(400); </span></span></li> <li class="alt"><span><span class="vars">$shape0</span><span>->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER ); </span></span></li> <li><span><span class="vars">$shape0</span><span>->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER ); </span></span></li> <li class="alt"><span><span class="vars">$textRun0</span><span> = </span><span class="vars">$shape0</span><span>->createTextRun(</span><span class="string">'http://www.mmclub.net'</span><span>); </span></span></li> <li><span><span class="vars">$textRun0</span><span>->getFont()->setSize(26); </span></span></li> <li class="alt"><span><span class="vars">$textRun0</span><span>->getFont()->setColor( </span><span class="keyword">new</span><span> PHPPowerPoint_Style_Color( </span><span class="string">'FF0000FF'</span><span> ) ); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="vars">$shape1</span><span> = </span><span class="vars">$activeSlide</span><span>->createRichTextShape(); </span></span></li> <li><span><span class="vars">$shape1</span><span>->setHeight(30); </span></span></li> <li class="alt"><span><span class="vars">$shape1</span><span>->setWidth(200); </span></span></li> <li><span><span class="vars">$shape1</span><span>->setOffsetX(700); </span></span></li> <li class="alt"><span><span class="vars">$shape1</span><span>->setOffsetY(500); </span></span></li> <li><span><span class="vars">$shape1</span><span>->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT ); </span></span></li> <li class="alt"><span><span class="vars">$shape1</span><span>->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER ); </span></span></li> <li><span><span class="vars">$textRun1</span><span> = </span><span class="vars">$shape1</span><span>->createTextRun(</span><span class="string">'Author: Guya'</span><span>); </span></span></li> <li class="alt"><span><span class="vars">$textRun1</span><span>->getFont()->setSize(14); </span></span></li> <li><span><span class="vars">$textRun1</span><span>->getFont()->setColor( </span><span class="keyword">new</span><span> PHPPowerPoint_Style_Color( </span><span class="string">'FF000000'</span><span> ) ); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="vars">$shape2</span><span> = </span><span class="vars">$activeSlide</span><span>->createRichTextShape(); </span></span></li> <li class="alt"><span><span class="vars">$shape2</span><span>->setHeight(30); </span></span></li> <li><span><span class="vars">$shape2</span><span>->setWidth(200); </span></span></li> <li class="alt"><span><span class="vars">$shape2</span><span>->setOffsetX(700); </span></span></li> <li><span><span class="vars">$shape2</span><span>->setOffsetY(540); </span></span></li> <li class="alt"><span><span class="vars">$shape2</span><span>->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT ); </span></span></li> <li><span><span class="vars">$shape2</span><span>->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER ); </span></span></li> <li class="alt"><span><span class="vars">$textRun2</span><span> = </span><span class="vars">$shape2</span><span>->createTextRun(</span><span class="string">'Date: 2009-4-30'</span><span>); </span></span></li> <li><span><span class="vars">$textRun2</span><span>->getFont()->setSize(14); </span></span></li> <li class="alt"><span><span class="vars">$textRun2</span><span>->getFont()->setColor( </span><span class="keyword">new</span><span> PHPPowerPoint_Style_Color( </span><span class="string">'FF000000'</span><span> ) ); </span></span></li> <li><span> </span></li> <li class="alt"><span><span class="comment">//保存PPTX 文件, 使用 2007 格式</span><span> </span></span></li> <li><span><span class="vars">$objWriter</span><span> = PHPPowerPoint_IOFactory::createWriter(</span><span class="vars">$ppp</span><span>, </span><span class="string">'PowerPoint2007'</span><span>); </span></span></li> <li class="alt"><span> </span></li> <li><span><span class="comment">//保存文件</span><span> </span></span></li> <li class="alt"><span><span class="vars">$objWriter</span><span>->save(ROOT . </span><span class="string">'myPhpPpt.pptx'</span><span>); </span></span></li> <li><span><span class="func">echo</span><span> </span><span class="string">'ppt create success!'</span><span>; </span></span></li> <li class="alt"><span>?> </span></li> </ol>
这个东西的应用前景的话. 在WEB的某些场合还是很有用的. 需要的朋友可以多花点时间去研究了.
本文来源:http://blog.mmclub.net/index/view/article_id/89
网上几乎很少有相关资料,找了好久,拿上来跟大家分享,同时感谢作者,。

PHP是一種服務器端腳本語言,用於動態網頁開發和服務器端應用程序。 1.PHP是一種解釋型語言,無需編譯,適合快速開發。 2.PHP代碼嵌入HTML中,易於網頁開發。 3.PHP處理服務器端邏輯,生成HTML輸出,支持用戶交互和數據處理。 4.PHP可與數據庫交互,處理表單提交,執行服務器端任務。

PHP在過去幾十年中塑造了網絡,並將繼續在Web開發中扮演重要角色。 1)PHP起源於1994年,因其易用性和與MySQL的無縫集成成為開發者首選。 2)其核心功能包括生成動態內容和與數據庫的集成,使得網站能夠實時更新和個性化展示。 3)PHP的廣泛應用和生態系統推動了其長期影響,但也面臨版本更新和安全性挑戰。 4)近年來的性能改進,如PHP7的發布,使其能與現代語言競爭。 5)未來,PHP需應對容器化、微服務等新挑戰,但其靈活性和活躍社區使其具備適應能力。

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

PHP沒有死。 1)PHP社區積極解決性能和安全問題,PHP7.x提升了性能。 2)PHP適合現代Web開發,廣泛用於大型網站。 3)PHP易學且服務器表現出色,但類型系統不如靜態語言嚴格。 4)PHP在內容管理和電商領域仍重要,生態系統不斷進化。 5)通過OPcache和APC等優化性能,使用OOP和設計模式提升代碼質量。

PHP和Python各有優劣,選擇取決於項目需求。 1)PHP適合Web開發,易學,社區資源豐富,但語法不夠現代,性能和安全性需注意。 2)Python適用於數據科學和機器學習,語法簡潔,易學,但執行速度和內存管理有瓶頸。

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),