PHPWord使用文档 顺附转pdf和截图命令: $commond = "export LANG=en_US.UTF-8; /usr/local/xxx/wkhtmltox/bin/wkhtmltopdf --page-size A4 $toHtml $toPdf"; $commond1 = "/usr/local/xxx/wkhtmltox/bin/wkhtmltoimage --crop-x 0 --crop-y 550 --crop-w 590 --crop-h 350 $source_url $img1_url"; ### PHPWord 使用文档详解 #### 一、概述 **PHPWord** 是一个用于读取、创建及编写 Microsoft Word 文档的 PHP 类库。它能够帮助开发者轻松地处理 `.doc` 和 `.docx` 文件格式,并提供了丰富的功能来满足文档创建的各种需求。 #### 二、文档基本信息与设置 ##### 2.1 计量单位:缇(Twips) - **定义**:“缇”(Twips)是 PHPWord 中使用的计量单位,表示为“TWentieth of an Inch Point”的简写,即1/20磅。换算关系为:1缇 = 1/1,440英寸 = 1/567厘米 ≈ 1/15像素。 - **用途**:用于文档中的尺寸设置,如字体大小、边距等。 ##### 2.2 字体设置 - **默认设置**:文档默认字体为 Arial,字号为 10 号。 - **自定义设置**: - 设置默认字体名称:`$PHPWord->setDefaultFontName('Tahoma');` - 设置默认字号:`$PHPWord->setDefaultFontSize(12);` #### 三、文档属性设置 - **示例代码**: ```php $properties = $PHPWord->getProperties(); $properties->setCreator('Myname'); $properties->setCompany('Myfactory'); $properties->setTitle('Mytitle'); $properties->setDescription('Mydescription'); $properties->setCategory('Mycategory'); $properties->setLastModifiedBy('Myname'); $properties->setCreated(mktime(0, 0, 0, 3, 12, 2010)); $properties->setModified(mktime(0, 0, 0, 3, 14, 2010)); $properties->setSubject('Mysubject'); $properties->setKeywords('my,key,word'); ``` #### 四、文档构建 ##### 4.1 新建文档 - **创建默认页面**: ```php $section = $PHPWord->createSection(); ``` ##### 4.2 页面样式 - **创建样式数组**: ```php $sectionStyle = array( 'orientation' => null, 'marginLeft' => 900, 'marginRight' => 900, 'marginTop' => 900, 'marginBottom' => 900 ); $section = $PHPWord->createSection($sectionStyle); ``` #### 五、文本操作 ##### 5.1 添加文本 - **添加普通文本**: ```php $section->addText('Hello World!'); ``` ##### 5.2 添加文本资源 - **创建文本资源**: ```php $textRun = $section->createTextRun(); $textRun->addText('Hello', array('bold' => true)); $textRun->addText(' World!', array('italic' => true)); ``` ##### 5.3 文本样式 - **设置样式**: ```php $styleArray = array('font' => array('bold' => true, 'size' => 14), 'alignment' => array('horizontal' => \PhpOffice\PhpWord\SimpleType\Jc::CENTER)); $section->addText('Centered Bold Text', $styleArray); ``` #### 六、列表操作 ##### 6.1 添加列表 - **添加有序列表**: ```php $list = $section->addList(); $list->addListItem('Item 1'); $list->addListItem('Item 2'); $list->addListItem('Item 3'); ``` ##### 6.2 列表样式 - **设置样式**: ```php $listStyle = array('numFmt' => \PhpOffice\PhpWord\SimpleType\NumFmt::DECIMAL); $list = $section->addList($listStyle); ``` #### 七、超链接 ##### 7.1 添加超链接 - **示例代码**: ```php $section->addHyperlink('http://www.example.com', 'Example Site'); ``` ##### 7.2 超链接样式 - **设置样式**: ```php $hyperlinkStyle = array('font' => array('color' => '0000FF'), 'hyperlink' => array('tooltip' => 'Visit Example Site')); $section->addHyperlink('http://www.example.com', 'Example Site', $hyperlinkStyle); ``` #### 八、图片操作 ##### 8.1 添加图片 - **插入图片**: ```php $section->addImage('path/to/image.jpg'); ``` ##### 8.2 图片样式 - **设置图片样式**: ```php $imgStyle = array('width' => 300, 'height' => 200, 'alignment' => \PhpOffice\PhpWord\SimpleType\Jc::CENTER); $section->addImage('path/to/image.jpg', $imgStyle); ``` #### 九、表格操作 ##### 9.1 添加表格 - **创建表格**: ```php $table = $section->addTable(); $row = $table->addRow(); $cell = $row->addCell(); $cell->addText('Cell Content'); ``` ##### 9.2 表格样式 - **设置表格样式**: ```php $tableStyle = array('borderSize' => 6, 'borderColor' => '000000', 'cellMargin' => 80); $table = $section->addTable($tableStyle); ``` #### 十、其他特性 ##### 10.1 页脚 - **添加页脚**: ```php $footer = $section->addFooter(); $footer->addText('This is the footer.'); ``` ##### 10.2 页眉 - **添加页眉**: ```php $header = $section->addHeader(); $header->addText('This is the header.'); ``` ##### 10.3 模板 - **加载模板**: ```php $templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('path/to/template.docx'); $templateProcessor->setValue('title', 'Document Title'); $templateProcessor->saveAs('output.docx'); ``` #### 十一、其他问题及解决方案 - **中文支持问题**: - 解决编码问题:对于使用 UTF-8 编码的环境,需删除类库中所有方法中的 `utf8_encode` 转码;对于使用 GBK 或 GB2312 编码的环境,则应使用 `iconv` 进行编码转换。 - 支持中文字体:在 `writer/word2007/base.php` 文件的第 312 行添加 `$objWriter->writeAttribute('w:eastAsia', $font)`。 - 启用 phpzip 支持:在 Windows 环境下的 `php.ini` 文件中,移除 `extension=php_zip.dll` 前面的分号,并确保 `php_zip.dll` 文件存在于相应目录中。同时,将 `zlib.output_compression=Off` 更改为 `zlib.output_compression=On`。 #### 十二、扩展命令 - **转 PDF 命令**: ```bash $command = "export LANG=en_US.UTF-8; /usr/local/xxx/wkhtmltox/bin/wkhtmltopdf --page-size A4 $toHtml $toPdf"; ``` - **截图命令**: ```bash $command1 = "/usr/local/xxx/wkhtmltox/bin/wkhtmltoimage --crop-x 0 --crop-y 550 --crop-w 590 --crop-h 350 $source_url $img1_url"; ``` 通过以上详细介绍,我们可以清晰地了解到如何利用 PHPWord 进行文档操作的各种方法,从而更高效地完成日常工作中的文档处理任务。
剩余32页未读,继续阅读
- 粉丝: 5
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助