PHPWord是一个用纯PHP编写的库,它提供了一组用于读写不同文档文件格式的类。当前版本的PHPWord支持Microsoft Office Open XML(OOXML或OpenXML),用于Office应用程序的 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
- 为每行(例如,重复作为标题行)和单元格(例如,背景颜色,行跨度,列跨度)使用自定义属性插入并格式化表格
- 插入列表项目为项目符号,编号或多层
- 插入超链接
- 插入脚注和尾注
- 插入图形形状(弧形,曲线,线,折线,矩形,椭圆形)
- 插入图表(饼图,甜甜圈,条形图,折线图,面积图,散点图,雷达图)
- 插入表单字段(文本输入,复选框和下拉列表)
- 从模板创建文档
- 使用XSL 1.0样式表来转换OOXML模板的标题,主文档部分和页脚
- ...还有更多正在开发的功能
要求
PHPWord需要以下内容:
- PHP 5.3.3以上
- XML分析器扩展
- Zend Escaper组件
- Zend Stdlib组件
- 邮编扩展名(可选,用于编写OOXML和ODF)
- GD扩展名(可选,用于添加图像)
- XMLWriter扩展(可选,用于编写OOXML和ODF)
- XSL扩展名(可选,用于将XSL样式表应用于模板)
- dompdf库(可选,用于编写PDF)
安装
PHPWord是通过Composer安装的。要在项目中向PHPWord 添加依赖项,
运行以下命令以使用最新的稳定版本
作曲家需要phpoffice / phpword
或者如果您想要最新的主版本
作曲家需要phpoffice / phpword:dev-master
当然,您也可以手动编辑composer.json文件
{
“ require ”:{
“ phpoffice / phpword ”:“ v0.16。* ”
}
}
入门
以下是PHPWord库的基本用法示例。
<?php
require_once'bootstrap.php ' ;
//创建新文档...
$ phpWord = new PhpOffice PhpWord PhpWord();
/ *注意:添加到文档的任何元素都必须位于Section中。* /
//在文档中添加一个空的节...
$ section = $ phpWord- > addSection();
//添加文本元素的部分已经字体默认...风格
$节 - > addText(
““借鉴昨天,活在今天,为明天的希望。”
。“最重要的是不要停止问问题。””
。'((阿尔伯特·爱因斯坦)'
);
/ *
*注意:可以通过三种方式自定义添加的Text元素的字体样式:
*-内联;
*-使用命名字体样式(将隐式创建新的字体样式对象);
*-使用显式创建的字体样式对象。
* /
//添加文本元素与字体定制内嵌...
$节 - > addText(
““伟大的成就大多来自于伟大的牺牲,”
。“和从来都不是自私的结果。””
。‘(拿破仑·希尔)’,
数组('name' => 'Tahoma','size' => 10)
);
//添加具有使用命名字体样式定制的字体的Text元素...
$ fontStyleName = 'oneUserDefinedStyle' ;
$ phpWord- > addFontStyle(
$ fontStyleName,
array('name' => 'Tahoma','size' => 10,'color' => '1B2232','bold' => true)
);
$节 - > addText(
““最大的成就是不是永远不跌倒,”
。 “但在再度上涨你倒下后””
。 ‘(文斯·隆巴迪)’,
$ fontStyleName
);
//添加使用显式创建的字体样式对象自定义字体的Text元素...
$ fontStyle = new PhpOffice PhpWord Style Font();
$ fontStyle- > setBold(true);
$ fontStyle- > setName('Tahoma');
$ fontStyle- > setSize(13);
$ myTextElement = $部 - > addText(““相信您可以,而且您已经到了一半。” (西奥多·罗斯福)');
$ myTextElement- > setFontStyle($ fontStyle);
//将文档另存为OOXML文件...
$ objWriter = PhpOffice PhpWord IOFactory :: createWriter($ phpWord,'Word2007');
$ objWriter- > 保存('helloWorld.docx');
//将文档另存为ODF文件...
$ objWriter = PhpOffice PhpWord IOFactory :: createWriter($ phpWord,'ODText');
$ objWriter- > 保存('helloWorld.odt');
//将文档另存为HTML文件...
$ objWriter = PhpOffice PhpWord IOFactory :: createWriter($ phpWord,'HTML');
$ objWriter- > 保存('helloWorld.html');
/ *注意:我们跳过RTF,因为它不是基于XML的,并且需要一个不同的示例。* /
/ *注意:我们将跳过PDF,因为“ HTML到PDF”方法用于创建PDF文档。* /
示例文件夹中提供了更多示例。为了方便访问这些示例php -S localhost:8000
,请在示例目录中启动,然后浏览至http:// localhost:8000以查看示例。您也可以阅读开发者文档以获取更多详细信息。
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要戳这里PHP进阶架构师>>>实战视频、大厂面试文档免费获取
原文链接:https://github.com/PHPOffice/PHPWord