PHPWord中文手册
PHP学习手册说明书

图书基本信息书名:<<PHP学习手册>>13位ISBN编号:978712112997110位ISBN编号:7121129973出版时间:2011-3出版时间:电子工业出版社作者:明日科技 等编著页数:500字数:780000版权说明:本站所提供下载的PDF图书仅提供预览和简介,请支持正版图书。
更多资源请访问:前言 前言 我可以学会编程吗? 当然可以!即使你没有基础,即使你非计算机专业毕业,即使你已过而立之年,甚至只有初中文化水平。
我国最早的计算机反病毒专家、江民杀毒软件创始人王江民,初中毕业,38岁开始学计算机,因为英语基础不好,很多人认为他根本不可能学会编程。
但王江民没有感觉自己不行,硬是克服各种困难,成为我国最成功的程序开发人员之一。
王江民学习编程的诀窍是什么? 是实践。
王江民说“计算机是实践性非常强的学科。
我搞计算机是用计算机,而不是研究计算机理论。
”王江民首先学的是BASIC语言。
当时,为了辅导上小学的孩子,对软件一片空白的王江民竟然决定编写程序代替家长辅导。
短短3个月,王江民就边学边实践,编好了一套数学语文教学软件,试过后效果极佳,参加计算机报组织的软件交流,被评为第二名,誉为“教育软件第一”。
因为这次成功,极大激发了王江民对编程的兴趣,使他从此把精力转到了软件领域。
所以说:实践,是学习编程的最好方法,也是培养编程兴趣、捕获发展机遇的最佳途径。
值得注意的是,不要等学完全部知识才去实践,要随时学习,随时实践,哪怕只学了一点点。
这本书适合我吗? 非常适合!本书是学习PHP编程的最佳选择,所讲内容通俗易懂、易于学习、贴近实践。
对于学习中的难点、重点,注意结合实际开发,采用情景应用的方式进行介绍和练习。
本书配套光盘提供了完整的视频讲座,可以对照本书内容循序渐进地进行学习。
利用本书,不但可以学会编程,更能激发读者理论联系实际的热情,开发出符合市场需求的软件和项目。
php参考手册(PHPManual)

PHP ManualPHP Arrayarray函数允许您对数组进行操作。
PHP 支持单维和多维的数组。
同时提供了用数据库查询结果来构造数组的函数。
安装array函数是PHP 核心的组成部分。
无需安装即可使用这些函数。
PHP Array函数PHP:指示支持该函数的最早的PHP 版本。
array_flip()交换数组中的键和值。
4 array_inter sect()计算数组的交集。
4 array_inter sect_assoc()比较键名和键值,并返回两个数组的交集数组。
4 array_inter sect_key()使用键名比较计算数组的交集。
5 array_inter sect_uasso c()带索引检查计算数组的交集,用回调函数比较索引。
5 array_inter sect_ukey()用回调函数比较键名来计算数组的交集。
5 array_key_e xists()检查给定的键名或索引是否存在于数组中。
4 array_keys()返回数组中所有的键名。
4 array_map()将回调函数作用到给定数组的单元上。
4 array_merge()把一个或多个数组合并为一个数组。
4 array_merge_recu rsive()递归地合并一个或多个数组。
4 array_multi sort()对多个数组或多维数组进行排序。
4 array_pad()用值将数组填补到指定长度。
4 array_pop()将数组最后一个单元弹出(出栈)。
4 array_produ ct()计算数组中所有值的乘积。
5 array_push()将一个或多个单元(元素)压入数组的末尾(入栈)。
4 array_rand()从数组中随机选出一个或多个元素,并返回。
PHP文档规范及phpDoc指南-共享版

PHP文档规范及phpDoc指南-共享版1 概述对于一个开发人员,文档总是最感到头疼的事情之一。
而且,很可能你对待文档会采取截然不同的2 种态度:当你使用别人的代码库的时候,最希望得到的是它的技术文档,尤其是当时间很紧,而你又不得不硬着头皮去读那些生涩的代码的时候。
当写你自己的程序的时候,最不希望做的事情却是给它编写专门的技术文档,你会以种种理由给自己开脱:我的代码已经足够清晰了,完全不用再为它重新编写文档了�6�7�6�7 为了解决这个问题,文档工具由此产生。
按照规范格式编写代码注释,当代码写完了,技术文档也就完成了。
良好的代码注释不仅能够帮助开发人员在编写代码时缕清思路,尽可能避免逻辑 bug,而且规范的代码注释还能够使用文档工具直接生成API 手册。
下面是一个规范的代码注释:/** * Common base class of all phpdoc classes (简述,用在索引列表中)* * As a kind of common base class PhpdocObject holds * configuration values (e.g. error handling)and debugging * methods (e.g. introspection()). It does not have a constructor, * so you can always inheritig Phpdoc classes from this * class without any trouble. (详细的功能描述)* * @author Ulf Wendel * @version $Id:PhpdocObject.php,v 1.3 2001/02/18 15:29:29 uw Exp $ * @package PHPDoc (文档标记)*/ class PhpdocObject { ..... }2 PHPDoc/ phpDocumentor 2.1 什么是PHPDoc/phpDocumentor PHPDoc(现在项目名改为了phpDocumentor)是PEAR 下面的一个非常优秀的模块,它的目标是实现类似 javadoc 的功能,可以为你的代码快速生成具有相互参照,索引等功能的API 文档。
phpQuery中文手册(更新中)

phpQuery中⽂⼿册(更新中)⽰例phpQuery::newDocumentFileXHTML('my-xhtml.html')->find('p'); $ul = pq('ul');载⼊⽂档phpQuery::newDocument($html, $contentType = null) 根据标记URL新建⼀个⽂档。
如果 $contentType为空,则根据⽂档⾃动检测编码。
检测失败, 则对于text/html类型⽂档⾃动赋予utf-8编码。
phpQuery::newDocumentFile($file, $contentType = null) 根据⽂件新建⼀个⽂档。
类似于newDocument()phpQuery::newDocumentHTML($html, $charset = 'utf-8')phpQuery::newDocumentXHTML($html, $charset = 'utf-8')phpQuery::newDocumentXML($html, $charset = 'utf-8')phpQuery::newDocumentPHP($html, $contentType = null)phpQuery::newDocumentFileHTML($file, $charset = 'utf-8')phpQuery::newDocumentFileXHTML($file, $charset = 'utf-8')phpQuery::newDocumentFileXML($file, $charset = 'utf-8')phpQuery::newDocumentFilePHP($file, $contentType)pq functionpq($param, $context = null);pq(); 相当于 jQuery的$();。
PHP常用编译参数中文说明

PHP常用编译参数中文说明PHP常用编译参数中文说明PHP是能让你生成动态网页的工具之一。
PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP,编译PHP常用的参数的解释,就跟随店铺一起去了解下吧,想了解更多相关信息请持续关注我们店铺!复制代码代码如下:--prefix=/usr/local/php #指定 php 安装目录--with-apxs2=/usr/local/apache/bin/apxs #整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求 apache 要打开SO模块--with-config-file-path=/usr/local/php/etc #用来指定php3.ini 或 php4.ini 的路径--with-MySQL=/usr/local/mysql #mysql安装目录,对mysql 的支持--with-mysqli=/usr/local/mysql/bin/mysql_config #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
--with-mysql-sock=/tmp/mysql.sock #指定mysql套接字文件位置--enable-safe-mode #打开安全模式,默认值是打开的--disable-short-tags #配置本选项后,PHP 的程序就不能使用短的标记,一定要用的长标记--with-exec-dir=DIR #PHP 执行路径(有时为了系统的安全性考虑,会指定 PHP 程序一定要在哪个目录执行)--enable-ftp #打开ftp的支持--enable-zip #打开对zip的支持--with-bz2 #打开对bz2文件的支持--with-jpeg-dir #打开对jpeg图片的支持--with-png-dir #打开对png图片的支持--with-freetype-dir #打开对freetype字体库的支持--without-iconv #关闭iconv函数,各种字符集间的转换--with-libXML-dir #打开libxml2库的支持--with-XMLrpc #打开xml-rpc的c语言--with-zlib-dir #打开zlib库的支持--with-gd #打开gd库的支持--enable-gd-native-ttf #支持TrueType字符串函数库--with-curl #打开curl浏览工具的支持--with-curlwrappers #运用curl工具打开url流--with-ttf #打开freetype1.*的支持,可以不加了--with-xsl #打开XSLT 文件支持,扩展了libXML2库,需要libxslt软件--with-gettext #打开gnu 的gettext 支持,编码库用到--with-pear #打开pear命令的支持,PHP扩展用的--enable-calendar #打开日历扩展功能--enable-mbstring #多字节,字符串的支持--enable-sqlite-utf8 #使sqllite支持utf-8--enable-bcmath #打开图片大小调整,用到zabbix监控的时候用到了这个模块--enable-sockets #打开 sockets 支持--enable-exif #图片的元数据支持--enable-magic-quotes #魔术引用的`支持--disable-rpath #关闭额外的运行库文件--disable-debug #关闭调试模式--enable-debug #本选项一般不会使用,除非在开发PHP 程序时比较有用。
PHPword 中文乱码,终极解决方案版+

PHPword中文乱码,终极解决方案版+在数字化办公的浪潮中,文档处理成了我们日常生活中不可或缺的一部分。
尤其是PHPword库,它让PHP开发者能够轻松Word文档。
但在实际应用中,中文乱码问题一直困扰着无数开发者。
今天,就让我这位有着十年方案写作经验的大师,来为大家揭晓终极解决方案!一、问题分析1.编码不一致编码不一致是导致中文乱码的主要原因。
PHPword默认使用的是UTF-8编码,但如果你的源文件、数据库或者其他环节使用了其他编码,比如GBK,那么中文乱码就出现了。
2.PHPword库版本问题不同版本的PHPword库,对中文的支持程度不同。
有些老版本的PHPword库可能存在中文乱码问题,而新版本则修复了这些问题。
3.字体问题Word文档中的字体如果不支持中文,也会导致中文乱码。
二、解决方案1.保持编码一致确保你的PHP代码、源文件、数据库等所有环节都使用UTF-8编码。
这样,从源头上避免编码不一致导致的中文乱码问题。
2.更新PHPword库检查你使用的PHPword库版本,如果发现是老版本,尽快升级到最新版本。
新版本的PHPword库对中文支持更好,可以解决中文乱码问题。
3.设置字体在Word文档时,设置一个支持中文的字体。
例如,你可以使用微软雅黑、宋体等字体。
具体操作如下:php$section->setFontFamily('微软雅黑');4.修改PHPword源码phppublicfunction__construct($text,$font=null,$bold=false,$ italic=false,$underline=null,$encoding='UTF-8') {//$this->encoding=$encoding;}phppublicfunctionsetText($text){//if($this->encoding=='UTF-8'){$text=mb_convert_encoding($text,'UTF-8','UTF-8');}//}这样,PHPword在处理文本时,会根据指定的编码进行转换,从而解决中文乱码问题。
Python中文手册(汉译)Word文字可编辑版

Python 手册Python中文社区Python 手册向上:Python 文档索引向后:前言Python 手册Guido van RossumFred L. Drake, Jr., editorPythonLabsEmail: **********************Release 2.3July 29, 2003前言目录1. 开胃菜2. 使用Python解释器2.1 调用解释器2.1.1 传递参数2.1.2 交互模式2.2 解释器及其工作模式2.2.1 错误处理2.2.2 执行 Python 脚本2.2.3 源程序编码2.2.4 交互环境的启动文件3.初步认识Python3.1 像使用计算器一样使用Python3.1.1 数值3.1.2 字符串3.1.3 Unicode 字符串3.1.4 链表3.2 开始编程4. 流程控制4.1 if 语法4.2 for 语法4.3 range() 函数4.4 break 和continue 语法以及else 子句在循环中的用法4.5 pass 语法4.6 定义函数4.7 定义函数的进一步知识4.7.1 定义参数变量4.7.2 参数关键字4.7.3 可变参数表4.7.4 Lambda 结构4.7.5 文档字符串5. 数据结构5.1 深入链表5.1.1 将链表作为堆栈来使用5.1.2 将链表作为队列来使用5.1.3 函数化的编程工具5.1.4 链表的内含(Comprehensions)5.2 del 语法5.3 Tuples 和 Sequences5.4 字典(Dictionaries)5.5 循环技巧5.6 深入条件控制5.7 Sequences 和其它类型的比较6. 模块6.1 深入模块6.1.1 模块搜索路径6.1.2 “编译” Python 文件6.2 标准模块6.3 dir() 函数6.4 包6.4.1 从包中导入所有内容(import * )6.4.2 隐式包引用6.4.3 包中的多重路径7. 输入和输出7.1 格式化输出7.2 读写文件7.2.1 文件对象的方法7.2.2 pickle 模块8. 错误和异常8.1 语法 Errors8.2 异常8.3 捕获异常8.4 释放异常8.5 用户自定义异常8.6 定义 Clean-up Actions9. 类9.1 一个术语9.2 Python 的生存期和命名空间9.3 类(Classes)的初步印像9.3.1 类定义语法9.3.2 类对象9.3.3 实例对象9.3.4 方法对象9.4 自由标记(Random Remarks)9.5 继承9.5.1 多继承9.6 私有变量9.7 零杂技巧9.8 异常也是类9.9 迭代子(Iterators)9.10 发生器(Generators)10. 接下来?A. 交互式编辑和历史回溯A.1 行编辑A.2 历史回溯A.3 快捷键绑定A.4 注释B. 浮点计算:问题与极限B.1 表达错误C. 历史和授权C.1 本软件的历史C.2 修改和使用Python的条件(Terms and conditions for accessing or otherwise usingPython)关于本文档Python 手册向上:Python 文档索引向后:前言Release 2.3, documentation updated on July 29, 2003.See A bout this document... for information on suggesting changes.Python中文社区前言Python中文社区Python 指南向前:Python 指南向上: P ython 指南向下:目录前言Copyright © 2001, 2002, 2003 Python Software Foundation. All rights reserved.Copyright © 2000 . All rights reserved.Copyright © 1995-2000 Corporation for National Research Initiatives. All rights reserved.Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved.See the end of this document for complete license and permissions information.概要:Python 是一种容易学习的强大语言。
PHP操作Word文档

如何利用PHP操作Word文档如何利用PHP操作Word文档,比如生成、修改后保存、删除等等……答:用COM函数操作MS Word<?php#实例化一个对象$word = new COM("word.application") or die("Unable to instantiate Word");#取得并显示版本print "Loaded Word, version {$word->Version}<BR>";#另一种方法去取得版本$testversion = com_get($word->application,version);print "Version using Com_get(): $testversion <BR>";#使其可见$word->Visible = 1;#创建新文件$word->Documents->Add();#写字符$word->Selection->TypeText("This is a test...");#保存$word->Documents[1]->SaveAs("Useless test.doc");#关闭$word->Quit();?>======================================================================================PHP操作word使用Word文档的书签(即在要替换内容的地方设置书签)来实现Word文档中的内容替换(替换为用户输入的信息)如下为一部分操作Word的PHP代码:/** 创建日期:* 文件名:* 作者:* 说明:* 版本: $Revision$* $Log$*///实例化一个world对象$office = new COM("word.application") or die("Unable to instantiate Word");if( ! $office )showError(0, "Office 操作错误",true);//调用Word显示文档$office->Visible = 1;$szFile = "d:/doc/patent1.doc";#打开文档$office->Documents->Open($szFile) or die("无法打开文件");//Word中书签数量$iBookmarks = $office->ActiveDocument->Bookmarks->Count;//对所有书签循环替换for( $i=1; $i<=$iBookmarks; $i++ ){//取书签对象$Bookmark = $office->ActiveDocument->Bookmarks->Item($i);$range = $Bookmark->Range;/*aBookmarkItem为替换书签值数组$aBookmarkItem = array('PATENT_NAME'=>'', 'CUSTOMER_NAME'=>'',......) 数组标签PATENT_NAME、CUSTOMER_NAME等即是Word文档中的书签名*/$szValue = $aBookmarkItem[$Bookmark->Name];if( !$szValue ) //替换书签中的值$range->Text = trim($szValue);}$office->Quit();?>php操作word画表格实例代码:<?php$word = new COM("word.application") or die("无法启动Word 程序!");$word->Visible = 1;$doc = $word->Documents->Add();$doc->Sections->Add($word->Selection->Range,0);// 增加一个分节$Section = $doc->Sections(1); // 获取第一小节对象$Range = $Section->Range; // 产生Range 对象$Table = $doc->Tables->Add($Range ,5, 10); // 产生5x10的表格// 将数据塞入表格for ($i=1; $i<=10; $i++) {for ($j=1; $j<=5; $j++) {$Cell = $Table->Cell($j, $i);$CellRange = $Cell->Range;$CellRange->InsertBefore(chr(0x40+$j).chr(0x40+$i));}}$word->Documents[1]->SaveAs("c:\\word.doc");$word->Quit();$word->Release();$word = null;?>没有组件操作权限的解决方法:1、运行Dcomcnfg.exe2、组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档3、点击属性4、选择“安全性”5、选定“使用自定义访问权限”和“使用自定义启动权限”6、分别编辑权限,添加ASPNET,VS Developers,Debugger User7、选择“身份标识”,在选定“交互式用户” 即可(关键步骤=============================================================================== <?php$word = new COM("word.application") or die ("Could not initialise MS Word object.");$word->ActiveDocument->Open("doc1.doc");// Extract content.$content = (string) $word->ActiveDocument->Content;echo $content;$word->ActiveDocument->Close(false);$word->Quit();$word = null;unset($word);?>======================================================================================= 生成excel电子表格-PHP<?phpinclude_once("guid.php");$ex=new COM("Excel.sheet") or die("Can't not open excel!");//$ex->Application->Visible=1;$wkb=$ex->application->workbooks->add();$sheet=1;excel_write_cell($wkb,$sheet,"A4","Hello,World!");$exFileName=realpath(".")."\\".getGuid().".xls";$wkb->SaveAs($exFileName);$wkb->close();$ex->application->Quit();$ex=null;function excel_write_cell($wkb,$sheet,$c,$v){$sheets=$wkb->worksheets($sheet);$sheets->activate;$selcell=$sheets->Range($c);$selcell->activate;$selcell->value=$v;}function excel_read_cell($wkb,$sheet,$c){$sheets=$wkb->worksheets($sheet);$sheets->activate;$selcell=$sheets->Range($c);$selcell->activate;return$selcell->value;}?>使用word模板-PHP<?phpinclude_once("guid.php");$tmpdoc=realpath("temple.doc");$customerinfo="Info Wyle COyote 123 Abc Ave. LooneyTune,USA 99999"; $deliverynum="00001";$ordernum="12345";$custnum="WB-beep";$shipdate="11 Sep 2001";$orderdate="11 Sep 2001";$shipvia="UPS Ground";$item[1]="SK-000-05";$desc[1]="Acme Plcket Rocket";$quantity[1]="2";$cost[1]="$5.00";$subtot[1]="$10.00";$total="$10.00";$word=new COM("word.application") or die("Can't not start ms word!");print"loaded word version {$word->Version}\n<br/>";//$word->visible=1;$word->Documents->open($tmpdoc);$word->Application->Run("BkmkCustomer");$word->Selection->TypeText($customerinfo);$word->Application->Run("BkmkDelivery");$word->Selection->TypeText($deliverynum);$word->Application->Run("NextCell");$word->Selection->TypeText($shipdate);$word->Application->Run("NextCell");$word->Selection->TypeText($shipvia);$word->Application->Run("NextCell");$word->Selection->TypeText($orderdate);$word->Application->Run("NextCell");$word->Selection->TypeText($custnum);$word->Application->Run("NextCell");$word->Selection->TypeText($ordernum);//$word->Application->Run("NextCell");$word->Application->Run("BkmkItem");$word->Selection->TypeText($item[1]);$word->Application->Run("NextCell");$word->Selection->TypeText($desc[1]);$word->Application->Run("NextCell");$word->Selection->TypeText($quantity[1]);$word->Application->Run("NextCell");$word->Selection->TypeText($cost[1]);$word->Application->Run("NextCell");$word->Selection->TypeText($subtot[1]);$word->Application->Run("BkmkTOtal");$word->Selection->TypeText($total);/*//打印doc的代码$word->Application.Run("invoiceprint");//运行打印的doc宏$word->Application->ActiveDocument->Saved=true;//保存while($word->Application.BackgroundPrintingStatus>0)sleep)(1);//等待退出*///下面是另存为的代码$docFileName=realpath(".")."\\".getGuid().".doc";$word->ActiveDocument->SaveAs($docFileName);$word->quit();//$word->Release();$word=null;//echo "生成doc完成!";?>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PHPWord Beta 0.6.2 开发者指南目录首先我们要了解文档最基本的信息和设置: (4)计量单位:缇(twips) (4)字体设置 (4)文档属性设置 (5)新建文档 (6)添加页面 (6)页面样式 (6)页面样式属性 (7)文本 (8)添加文本 (8)添加文本资源 (9)文本样式 (9)样式属性列表 (11)添加换行符 (12)添加分页符 (12)列表 (12)添加列表 (12)列表样式 (13)列表样式属性列表 (13)超链接 (13)添加超链接 (14)超链接样式 (14)图片 (15)添加图片 (15)图片样式 (16)图片样式属性 (16)添加GD生成图片 (17)添加水印 (17)添加对象 (18)添加标题 (19)添加目录 (20)表格 (21)添加表格 (21)添加行 (21)添加单元格 (22)单元格样式 (23)表格样式 (25)页脚 (28)页眉 (29)模版 (30)其他问题修改 (31)解决文本缩进问题 (31)表格对齐和表格缩进 (34)图片缩进和绝对相对悬浮定位 (37)首先我们要了解文档最基本的信息和设置:因为是国外编辑的类库,存在对中文支持的问题,使用前,我们需要进行一些修正:1、解决编码问题,PHPword会对输入的文字进行utf8_encode 编码转化,如果你使用GBK、GB2312或者utf8编码的话就会出现乱码,如果你用utf8编码,就查找类库中所有方法中的utf8_encode转码将其删除,如果你采用GBK或者GB2312编码,使用iconv进行编码转换。
2、解决中文字体支持,在writer/word2007/base.php中312行添加$objWriter->writeAttribute('w:eastAsia',$font)3、启动php zip支持,windows环境下在php配置文件php.ini 中,将extension=php_zip.dll前面的分号“;”去除;(如果没有,请添加extension=php_zip.dll此行并确保php_zip.dll文件存在相应的目录),然后同样在php.ini文件中,将zlib.output_compression = Off改为zlib.output_compression = On;计量单位:缇(twips)首先解释一下PHPWord最基本的计量单位:“缇”(twips),我们常常在文件中看到或使用计量单位“缇”,它是开源办公软件中最基本字体设置文档默认字体是Arial,字号10号,我们可以通过以下方法设置默认字体和字号:注,该库存在中文字体支持问题,解决方法:见文档开头文档属性设置我们可以设置下列文档属性我们可以通过以下方法设置文档属性新建文档添加页面添加默认页面(默认页面方向和页边距):页面样式调整页面样式和布局有两种方法:创建样式数组:直接调用样式属性设置方法进行设置:页面样式属性注意:所有的属性对大小写敏感 !页面高度和宽度是自动设置的,你可以通过以下两个属性来修改,但不推荐进行修改。
文本添加文本向文档添加文本使用方法函数: addText.(注意PHPword会对输入的文字进行utf8_encode编码转化,如果你使用GBK、GB2312或者utf8编码的话就会出现乱码,如果你用utf8编码,就查找类库中所有方法中的utf8_encode转码将其删除,如果你采用GBK或者GB2312编码,使用iconv进行编码转换。
)添加文本资源文本资源可以包含文本和链接,可以统一赋予段落样式,添加文本资源使用函数方法createTextrun.添加文本资源后,就可以添加具有独特样式的文本或链接了。
当然也可以继承使用段落或文字样式文本样式设置文本样式有两种方法:内嵌样式:或者定义一个样式定义设置文本样式,定义一种样式后,必须把第二个参数设置为样式名称,使用方法函数addFontStyle:示例:添加段落样式,使用方法函数addParagraphStyle:样式属性列表属性大小写敏感 !添加换行符添加换行符,使用方法函数 addTextBreak:添加多个换行符:.添加分页符添加分页符,使用方法函数:addPageBreak:列表添加列表添加列表使用方法函数: addListItem:列表样式示例:列表样式属性列表属性大小写敏感!超链接添加超链接添加超链接,使用方法函数: addLink:注意在添加链接地址时最好trim一下前后有空格很可有可能导致文档打不开超链接样式定义超链接风格的两种方法内嵌样式:或者定义一个样式定义设置超链接样式,定义一种样式后,必须把第三个参数设置为样式名称图片添加图片添加图片的函数方法: addImage:注意在添加图片路径时最好trim一下前后有空格很可有可能导致文档打不开图片样式添加图片样式只能使用数组方式 :图片样式属性大小写敏感!如果没有指定图片高或宽的属性,系统将使用PHP原生函数”getimagesize”来获取相关属性。
PHPWord 支持的图片格式: gif, jpeg, png, bmp, tiff. 添加GD生成图片你也可以添加由GD库生成的图片,使用函数方法:addMemoryImage:示例:你GD图片样式的设置和本地图片一样.PHPWord 支持的 GD 图片类型: png, jpeg, gif.添加水印添加水印的页面需要一个头部引用,添加水印方法函数:addWatermark水印图片是在页面是绝对定位的,所以水印图片至少需要两个样式属性注:图片样式并没有提供图像并排,文字环绕等功能,可以通过与表格想结合进行解决。
添加对象我们可以使用方法函数 addObject,添加对象和链接对象属性是有一个样式:属性区分大小写!PHPWord 支持的对象类型: XLS, DOC, PPT.添加标题我们可以使用标题来为结构化文档或为文档建立目录,添加标题使用方法函数addTitleStyle 和 addTitle:需要添给标题添加一个样式,否则文档不会将其作为一个真正的标题来处理。
定义标题样式后,定义标题就很简单了,可以使用函数方法:addTitle;添加目录添加目录使用方法函数: addTOC:目录样式属性列表:样式属性区分大小写 !表格添加表格添加表格使用函数方法:addTable:参数 $tableStyle 是可选的. 表格样式这章有关于表格样式的详细说明。
为addTable建立一个本地对象,我们需要使用这个对象来调用相关函数方法。
添加行行的高度可以通过$height参数来设置,单位:twips.添加单元格单元格添加前必须先添加行,添加单元格的函数方法为: addCell为addcell创建一个本地对象,需要使用该对象来调用以下函数示例1:示例2:单元格样式使用addCell的第二个参数来给单元格设置样式示例:单元格样式属性列表: 属性大小写敏感 !表格样式我们可以设置整个表格的样式,通过创建表格函数addTable的参数$tableStyle,表格具有如下样式属性属性名称大小写敏感!示例:我们可以使用函数方法: addTableStyle,为表格定义一个完整的样式。
示例:表格样式属性,注意属性名称大小写敏感!注意:表格在word布局中的功能可以进行体现,例如进行图片,对象等的布局可以考虑与表格结合进行处理页脚添加文档页脚使用函数方法: createFooter:确保在本地对象中保存页脚,并使用下列函数向页脚(页眉)添加页码使用函数方法:addPreserveText:示例:页眉添加页眉,使用函数方法: createHeader:确保页眉是建立在一个文档中,页眉和页脚使用相同的属性和函数,详见页脚章节。
注意:只用添加了页眉的页面,才能添加和使用图片水印模版我们可以利用搜索替换功能创建一个docx格式的模版文档,来替换文档中你想替换的文本. 但是要注意,只有文本或链接可以被替换。
加载模版文档使用函数方法:loadTemplate function.加载完成模版文档后,你可以使用函数方法: setValue 来搜索替换相关内容被搜索替换的标签格式为:${YOUR_SEARCH_PATTERN}不能添加新的PHPWORD元素到加载的模版文档中、模版使用的几个注意事项:1、从模板生成word文档,支持在word模板文档里写替换标签,标签格式为${xxx},不过一定要注意,不要直接在word里编辑这些标签,一定要在文本文档里先写好标签,直接拷贝粘贴上去,千万不要编辑,否则无法替换,原因也很简单,把word文档另存为xml,然后看xml里标签的位置,会发现标签中间被插入了很多没用的xml节点,还有中文字体的节点。
2、模版文档要一次性完成在保存,否则会出现替换失败问题。
3、中文乱码问题,这个一定是存在的,如果php环境已经是utf8了,要找到关键地方,转utf8的代码,去掉,否则就是转两次编码了,典型的是phpword\template.php文件,把这行注释掉:$replace = utf8_encode($replace);4、linux下报“Could not close zip file.”错误,这个你永远想不到,要将模板文件所在目录权限改为可写,因为要在那个目录下生成临时文件5、引用模板文件和另存文件路径什么的,最好用绝对路径其他问题修改PHPWord库相对功能比较简单,部分功能需要进行二次开发才能解决这里要感谢网友1、/PHPWord/Style/Paragraph.php添加以下属性/*** 缩进 indentleft and indentright段落缩进值,单位为twips** 缩进indentFirstLine and indentFirstChars 首行缩进twips数** @var int*/private $_indentLeft;private $_indentRight;private $_indentFirstLine;private $_indentFirstLineChars;// 获取左缩进值public function getIndentLeft(){return $this->_indentLeft;}// 设置左缩进值public function setIndentLeft($pValue = null){$this->_indentLeft = $pValue;return $this;}// 获取右缩进值public function getIndentRight(){return $this->_indentRight;}// 设置右缩进值public function setIndentRight($pValue = null){$this->_indentRight = $pValue;return $this;}// 首行缩进相关方法public function setIndentFirstLine($pValue = null){$this->_indentFirstLine = $pValue;return $this;}public function getIndentFirstLine(){return $this->_indentFirstLine;}public function setIndentFirstLineChars($pValue = null){$this->_indentFirstLineChars = $pValue;return $this;}public function getIndentFirstLineChars(){return $this->_indentFirstLineChars;}2、/PHPword/Writer/Word2007/Base.php,在_writeParagraphStyle方法中大约第117行添加$indentLeft = $style->getIndentLeft();$indentRight = $style->getIndentRight();$indentFirstLine = $style->getIndentFirstLine();$indentFirstLineChars = $style->getIndentFirstLineChars();然后同文件大约第156行if (!is_null($indentLeft) || !is_null($indentRight) || !is_null($indentFirstLine)|| !is_null($indentFirstLineChars)){$objWriter->startElement('w:ind');if (!is_null($indentLeft)){$objWriter->writeAttribute('w:left', $indentLeft);}if (!is_null($indentRight)){$objWriter->writeAttribute('w:right', $indentRight);}if (!is_null($indentFirstLine)){$objWriter->writeAttribute('w:firstLine', $indentFirstLine);}if (!is_null($indentFirstLineChars)){$objWriter->writeAttribute('w:firstLineChars', $indentFirstLineChars);}$objWriter->endElement();}这样就可以在addtext时在段落样式中用缩进属性了$section->addText('test', array('bold' => true), array('indentLeft' => 1440));注意计量单位,首行缩进2个字符,设置indentFirstLineChars的值是 200而不是2表格对齐和表格缩进/PHPWord/Style/TableFull.php添加相关属性和方法// 表格居中属性,用法:表格style数组中:'alignMent' => 'center'private $_alignMent = null;// 表格缩进属性private $_tableIndent = null;public function setTableAlign($pValue = null){$this->_alignMent = $pValue;}public function getTableAlign()return $this->_alignMent;}public function getTableIndent(){return $this->_tableIndent;}public function setTableIndent($pValue = null){$this->_tableIndent = $pValue;return $this;}构造函数中添加unset($this->_firstRow->_alignMent);unset($this->_firstRow->_tableIndent);/PHPWord/Writer/Word2007/Styles.php大约144行_writeFullTableStyle方法内添加$tableAlign = $style->getTableAlign();$tableIndent = $style->getTableIndent();同文件$objWriter->startElement('w:tblPr');下面if ($tableAlign) {$objWriter->startElement('w:jc');$objWriter->writeAttribute('w:val', $tableAlign);$objWriter->endElement();}if (!is_null($tableIndent)){$objWriter->startElement('w:tblInd');if (!is_null($tableIndent)){$objWriter->writeAttribute('w:w', $tableIndent);$objWriter->writeAttribute('w:type', 'dxa');}$objWriter->endElement(); // w:ind}这样就可以设置表格对齐方式和缩进了$styleTable = array('borderSize'=>6, 'alignMent' => 'right', 'tableInden' => 1440);$styleFirstRow = array('bgColor'=>'#1F497D');$PHPWord->addTableStyle('tableStyle', $styleTable, $styleFirstRow);$table = $section->addTable('tableStyle');2、单元格合并/PHPWord/Style/Cell.php添加属性和方法private $_rowMerge = null;private $_cellMerge = null;public function getRowMerge(){return $this->_rowMerge;}public function setRowMerge($pValue = null){$this->_rowMerge = $pValue;return $this;}public function getCellMerge(){return $this->_cellMerge;}public function setCellValue($pValue = null){$this->_cellMerge = $pValue;return $this;}/PHPWord/Writer/Word2007/base.php中_writeCellStyle方法添加$rowMerge = $style->getRowMerge();$cellMerge = $style->getCellMerge();在同方法中修改$styles(感谢网友提出,还真忘了加上这个),通过这个才能进入if ($styles)代码块里面:$styles = (!is_null($bgColor) || !is_null($valign) || !is_null($textDir)|| $borders || !is_null($rowMerge) || !is_null($cellMerge)) ? true : false;在同方法if ($styles)中添加if (!is_null($cellMerge)){//$objWriter->startElement('w:gridSpan');$objWriter->startElement('w:hMerge');if ((string)$cellMerge !== 'continue'){$objWriter->writeAttribute('w:val', $cellMerge);}$objWriter->endElement();}if (!is_null($rowMerge)){$objWriter->startElement('w:vMerge');if ((string)$rowMerge !== 'continue'){$objWriter->writeAttribute('w:val', $rowMerge);}$objWriter->endElement();使用方法:$table->addRow(400);$table->addCell(1600, array('cellMerge' => 'restart', 'valign' => "center"))->addText('横向合并');$table->addCell(1600, array('cellMerge' => 'continue'));$table->addCell(1600, array('cellMerge' => 'continue'));$table->addCell(1600, array('cellMerge' => 'continue'));附调试心得:如果生成的word文件和自己预想的样式不太一致,可以直接用解压缩软件如rar、zip打开word文件解压出来,直接查看里面的相关文件。