需求:最近做一个word新闻规范扫描的工具,需要将wold中的内容读取出来扫描可疑、错误词文本,并将错误可疑文本添加背景颜色。
内容扫描规范识别不在本文中描述,重点说怎样通过编程语言操作word实现文字添加背景色

为了能快速达到效果,直接在https://github.com/PHPOffice/... 这个项目上扩展的功能:

  • 下载项目目录如下

  • 在路径 phpoffice/phpword/src/PhpWord/ 中新建文件 Template.php
<?phpnamespace PhpOffice\PhpWord;class Template extends TemplateProcessor
{public $tempDocumentMainPart;public function __construct($documentTemplate){parent::__construct($documentTemplate);}static $wordArr;static $color = 'yellow';/*** 多个词替换目前替换背景色功能** @param $word* @param $color* @example {*  $template = new \PhpOffice\PhpWord\Template($path);*  $template->setWordBgColor($txt, 'yellow');* }*/public function setWordArrBgColor($word, $color){self::$wordArr = array_unique($word);if (!empty(self::$wordArr)) {self::$color  = $color;$this->tempDocumentHeaders = $this->_replace($this->tempDocumentHeaders);$this->tempDocumentMainPart = $this->_replace($this->tempDocumentMainPart);$this->tempDocumentFooters = $this->_replace($this->tempDocumentFooters);}}private function _replace($content) {return preg_replace_callback('/<w:r w:([^>]*)>((?:(?!<\w:r>)[\s\S])*)<w:t[^>]*>((?:(?!<\/w:r>)[\s\S])*)<\/w:t><\/w:r[^>]*>/iUs',function ($matches) {// print_r($matches);if (!empty(trim($matches[3]))) {$text = $matches[3];foreach (self::$wordArr AS $value) {// 判断关键词在字符串中是否存在if (false !== strpos($text, $value)) {// 背景色属性$bgAttr = empty($matches[2])? '<w:rPr><w:highlight w:val="'.self::$color.'"/></w:rPr>': str_ireplace('</w:rPr>', '<w:highlight w:val="'.self::$color.'"/></w:rPr>', $matches[2]);$matches[0] = str_ireplace($value,'</w:t></w:r><w:r w:'.$matches[1].'>'.$bgAttr.'<w:t>'.$value.'</w:t></w:r><w:r w:'.$matches[1].'>'.$bgAttr.'<w:t>',$matches[0]);}}if (!empty($matches[0])) {// 过滤掉空的$matches[0] = preg_replace('/<w:r w:[^>]*>(?:(?!<\w:t>)[\s\S])*<w:t[^>]*><\/w:t><\/w:r[^>]*>/iUs', '', $matches[0]);}}return $matches[0];},$content);}
}
  • 第二部就扩展完成背景色替换功能,接下怎样调用?
//引入类库
require autoload.php
$path = './test.docx';
$template = new \PhpOffice\PhpWord\Template($path);
$template->setWordArrBgColor(['TMD', '台湾省', 'Caonima'], 'yellow');
  • 效果

PHP 实现Office word 关键词添加背景色相关推荐

  1. php word 添加,PHP 实现Office word 关键词添加背景色

    需求:最近做一个word新闻规范扫描的工具,需要将wold中的内容读取出来扫描可疑.错误词文本,并将错误可疑文本添加背景颜色. 内容扫描规范识别不在本文中描述,重点说怎样通过编程语言操作word实现文 ...

  2. office/word 2010添加页眉页脚

    office/word 2010添加页眉页脚流程 页眉编辑 格式校验 页脚编辑 生成目录 老祖宗有句话讲得好 "学而不思则罔, 思而不学则殆", 学习后就要养成记录的好习惯 最近, ...

  3. word中添加背景色

    在 excel中添加背景色很简单,但是在word中好像没有特别针对这样的背景颜色添加. 如果想更改背景色,有以下方法. 1.更改整个页面的背景色 格式--〉背景,选择一种颜色就可以了 2.某段文字添加 ...

  4. word中为代码块儿添加背景色

    背景 工作中经常会遇到编写word文档的时候,比如记录某个项目的部署步骤,此时一份看起来清晰简明的操作文档则起到事半功倍的效果,如在文档中为部署过程中使用到的命令或代码增加背景色,则看起来会更加清晰明 ...

  5. smartfroms word编辑_请教Microsoft Office Word 2007 SmartArt图形文本如何直接在里面添加字,修改字。如图。...

    展开全部 观型外观 Office PowerPoint 2007 具有一个称为 Microsoft Office Fluent 用户界面 的全新直观用户界面:与早期版本的 PowerPoint 相比, ...

  6. poi 导出excel实战与word新增行与excel添加背景色与设置单元格边框

    提示:本文尽可能简洁通俗的讲解[poi 导出excel实战] ,如需导入可见文尾 一.导入依赖: <!--Apache poi--><!--xls(03)--><depe ...

  7. 计算机wold标题文字加背景,office word文档添加背景图片以及背景颜色来美化枯燥乏味的文字...

    在浏览网页的时候,遇到各式各样的好看图片是常用的事,现在的需求就是如何将这些看似比较不错的图片设置为Word的文档背景.设置背景的目的是为了美化文字的同时还可以为文档增姿添彩.看到这里大家是不是有点迫 ...

  8. office@word官方文档查看@审阅@批注@修订

    文章目录 office官方文档 microsoft office 文档@教程语言切换 文档官网 word官方培训资源 找到合适的文档 word@共享@共同创作的相关支持 word审阅 重点 修订 批注 ...

  9. java 使用 POI 操作 XWPFDocumen 创建和读取 Office Word 文档基础篇

    注:有不正确的地方还望大神能够指出,抱拳了 老铁! 参考 API:http://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFDoc ...

最新文章

  1. 最大子矩阵(降维处理)
  2. 阿里p8程序员吐槽:新来应届生都开卡宴上班,当时就震惊了!
  3. 分布式一致性与共识算法
  4. 扶凯:海量视频和用户时代的CDN
  5. Linux下 Nginx 启动 重启 关闭
  6. Android Studio之查找当前类的位置图标没了
  7. tool vmmap 配置符号文件 symbolic file
  8. 如何在乌版图系统添加拼音输入法!
  9. 【数学建模】CUMCM-2010A 储油罐的变位识别与罐容表标定 解题思路整理
  10. 二叉树模型matlab实现,利用Matlab实现二叉树的树形显示
  11. python sphinx_Python Sphinx 生成简洁大方的文档
  12. html纵向排列图片,ppt版式垂直排列标题与文本
  13. 106短信平台如何申请?申请周期是多久?
  14. 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行)
  15. 【C语言进阶】C语言实现通讯录
  16. java 颜色板_java-RGB调色面板的实现(事件监听器之匿名内部类)
  17. Docker的常用命令
  18. JS实现一天不同时段问候语
  19. 时间转cron表达式
  20. 图像裁剪和拼接(普通版、overlap版)

热门文章

  1. 商城模板网站html5手机端_网站建设中,pc端与手机移动端设计一样吗
  2. php静态页面缓存,php处理静态页面:页面设置缓存时间实例
  3. 数学建模 随机动态规划
  4. 【 MATLAB 】信号处理工具箱之 fft 案例分析
  5. 【 C 】关于相邻字符串常量自动合并的标准(新旧标准)(新旧风格)(陷阱)
  6. Delphi的对象注销方法Destroy和free的区别
  7. Ubuntu 16.04安装Wine版的迅雷+QQ(完美方案,终极解决方法)
  8. 设置NotePad++设置不打开上次关闭的文件
  9. ubuntu set ntpdate
  10. web中session与序列化的问题