PHPWord 是一个用纯 PHP 编写的库,它提供了一组用于写入和读取不同文档文件格式的类。PHPWord 的当前版本支持 Microsoft Office Open XML(OOXML 或 OpenXML)、OASIS办公应用程序的开放文档格式(OpenDocument 或 ODF)、富文本格式(RTF)、HTML 和 PDF。
PHPWord 是一个开源项目,根据LGPL 版本 3的条款获得许可。PHPWord 旨在通过结合持续集成和单元测试成为高质量的软件产品。您可以通过阅读开发人员文档了解有关 PHPWord 的更多信息。
如果您有任何问题,请在StackOverFlow上提问
阅读有关 PHPWord 的更多信息:
特征
借助 PHPWord,您可以使用 PHP 5.3.3+ 脚本动态创建 OOXML、ODF 或 RTF 文档。以下是您可以使用 PHPWord 库执行的一些操作:
设置文档属性,例如标题、主题和创建者。
创建具有不同设置的文档部分,例如纵向/横向、页面大小和页码
为每个部分创建页眉和页脚
设置默认字体类型、字体大小和段落样式
使用 UTF-8 和东亚字体/字符
将自定义字体样式(例如粗体、斜体、颜色)和段落样式(例如居中、多列、间距)定义为命名样式或文本内嵌
插入段落,作为简单文本或包含其他元素的复杂文本(文本运行)
插入标题(标题)和目录
插入文本中断和分页符
插入和格式化图像,本地、远程或作为页面水印
插入二进制 OLE 对象,例如 Excel 或 Visio
为每一行(例如作为标题行重复)和单元格(例如背景颜色、行跨度、colspan)插入和设置具有自定义属性的表格
以项目符号、编号或多级形式插入列表项
插入超链接
插入脚注和尾注
插入绘图形状(圆弧、曲线、直线、折线、矩形、椭圆)
插入图表(饼图、甜甜圈、条形图、折线图、面积图、散点图、雷达图)
插入表单域(文本输入、复选框和下拉列表)
从模板创建文档
使用 XSL 1.0 样式表转换 OOXML 模板的页眉、主要文档部分和页脚
......以及更多进展中的功能
要求
PHPWord 需要以下内容:
PHP 5.3.3+
Zip 扩展(可选,用于编写 OOXML 和 ODF)
GD 扩展(可选,用于添加图片)
XMLWriter 扩展(可选,用于编写 OOXML 和 ODF)
XSL 扩展(可选,用于将 XSL 样式表应用到模板)
dompdf 库(可选,用于编写PDF)
安装
PHPWord 是通过Composer安装的。要在您的项目中添加对 PHPWord的依赖,
运行以下命令以使用最新的稳定版本
作曲家需要 phpoffice/phpword
或者如果你想要最新的主版本
作曲家需要 phpoffice/phpword:dev-master
你当然也可以手动编辑你的 composer.json 文件
{ “要求”:{ “phpoffice/phpword”:“ v0.18.* ” } }
入门
以下是PHPWord 库的基本使用示例。
<?php require_once 'bootstrap.php' ; // 创建新文档... $ phpWord = new \ PhpOffice \ PhpWord \ PhpWord (); /* 注意:您附加到文档的任何元素都必须位于节内。*/ // 向文档中添加一个空节... $ section = $ phpWord -> addSection (); // 将 Text 元素添加到默认设置字体样式的 Section 中... $ section -> addText ( '"从昨天学习,为今天而活,为明天而希望。' . '重要的是不要停止提问。" ' . '(阿尔伯特·爱因斯坦)' ); /* * 注意:可以通过三种方式自定义添加的 Text 元素的字体样式: * - 内联; * - 使用命名字体样式(将隐式创建新的字体样式对象); * - 使用显式创建的字体样式对象。 */ // 内联添加自定义字体的 Text 元素... $ section -> addText ( '"伟大的成就通常源于巨大的牺牲,' . '永远不是自私的结果。" ' . '(Napoleon Hill)' , 数组('name' => 'Tahoma','size' => 10) ); // 添加使用命名字体样式自定义字体的文本元素... $ fontStyleName = 'oneUserDefinedStyle' ; $ phpWord -> addFontStyle ( $ fontStyleName , array ( 'name' => 'Tahoma' , 'size' => 10 , 'color' => '1B2232' , 'bold' => true ) ); $ section -> addText ( '"最大的成就不是永不跌倒,' . '而是跌倒后重新站起来。" ' . '(Vince Lombardi)' , $ fontStyleName ); // 添加带有使用显式创建的字体样式对象自定义字体的文本元素... $ fontStyle = new \ PhpOffice \ PhpWord \ Style \ Font (); $ fontStyle -> setBold ( true ); $ fontStyle -> setName ( 'Tahoma' ); $ fontStyle -> setSize ( 13 ); $ myTextElement = $ section -> addText ('“相信你能做到,你就成功了一半。” (西奥多·罗斯福)' ); $ myTextElement -> setFontStyle ( $ fontStyle ); // 将文档保存为 OOXML 文件... $ objWriter = \ PhpOffice \ PhpWord \ IOFactory :: createWriter ( $ phpWord , 'Word2007' ); $ objWriter -> save ( 'helloWorld.docx' ); // 将文档保存为 ODF 文件... $ objWriter = \ PhpOffice \ PhpWord \ IOFactory :: createWriter ( $ phpWord , 'ODText' ); $ objWriter -> save ( 'helloWorld.odt' ); // 将文档保存为 HTML 文件... $ objWriter = \ PhpOffice \ PhpWord \ IOFactory :: createWriter ( $ phpWord , 'HTML' ); $ objWriter -> save ( 'helloWorld.html' ); /* 注意:我们跳过 RTF,因为它不是基于 XML 的,需要一个不同的例子。*/ /* 注意:我们跳过PDF,因为“HTML-to-PDF”方法用于创建PDF 文档。*/
示例文件夹中提供了更多示例。为了轻松访问php -S localhost:8000
在示例目录中启动的这些示例,然后浏览到http://localhost:8000以查看示例。您还可以阅读开发人员文档以获取更多详细信息。
贡献
我们欢迎大家为 PHPWord 做出贡献。以下是您可以做的一些贡献。