资讯专栏INFORMATION COLUMN

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

harriszh / 551人阅读

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

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

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

下载项目目录如下

在路径 phpoffice/phpword/src/PhpWord/ 中新建文件 Template.php

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(
            "/]*)>((?:(?!)[sS])*)]*>((?:(?!)[sS])*)]*>/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])
                                ? ""
                                : str_ireplace("", "", $matches[2]);

                            $matches[0] = str_ireplace($value,
                                "".$bgAttr."".$value."".$bgAttr."",
                                $matches[0]);
                        }
                    }


                    if (!empty($matches[0])) {

                        // 过滤掉空的
                        $matches[0] = preg_replace("/]*>(?:(?!)[sS])*]*>]*>/iUs", "", $matches[0]);
                    }
                }
                return $matches[0];
            },
            $content);
    }
}

第二部就扩展完成背景色替换功能,接下怎样调用?

//引入类库
require autoload.php
$path = "./test.docx";
$template = new PhpOfficePhpWordTemplate($path);
$template->setWordArrBgColor(["TMD", "台湾省", "Caonima"], "yellow");

效果

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29426.html

相关文章

  • PHPWord中文手册整理

    摘要:修正中文支持的问题,使用前如果发现乱码,需要进行一些修正解决编码问题,会对输入的文字进行编码转化,如果你使用或者编码的话就会出现乱码,如果你用编码,就查找类库中所有方法中的转码将其删除,如果你采用或者编码,使用进行编码转换。 修正 中文支持的问题,使用前如果发现乱码,需要进行一些修正: 解决编码问题,PHPword 会对输入的文字进行utf8_encode编码转化,如果你使用GBK、...

    wangdai 评论0 收藏0
  • CSS3学习笔记

    摘要:只对英文起作用,以单词作为换行依据。换句话说,字符串与属性值中的任意位置相匹配。其主要有两个值和。主要具有四个属性值和。或表示红色,表示绿色,表示蓝色,也可取其他数值来指定颜色。 1.文档换行 a.强制一排显示文本,多出的地方切割文本,并加上省略号,三句真言 text-overflow:ellipsis; /*实现溢出时产生省略号的效果, 或者clip表示剪切*/ overflow:h...

    Flink_China 评论0 收藏0
  • vue使用OfficeWeb实现线上文件预览

      在日常中查看使用word,excel,pptx的offic文件是常见之事,想过用使用微软的开发接口,比如一个阅读器Office Web。  什么是 Office Web 查看器?  它是一种创建 Office Web Viewer 链接的服务。Office Web Viewer 链接可在浏览器中打开 Word、PowerPoint 或 Excel 文件,否则这些文件将被下载。您可以轻松地将下载...

    3403771864 评论0 收藏0
  • CSS3 新特性

    摘要:语法说明对象选择器投影方式轴偏移量轴偏移量模糊半径阴影扩展半径阴影颜色内阴影,向右偏移,向下偏移,模糊半径,阴影缩小属性的参数设置取值阴影类型此参数可选。 CSS3 是最新的 CSS 标准,并且完全向后兼容,不过目前W3C 仍然在对 CSS3 规范进行开发,虽然标准的规范还没有正式发布,但是现代浏览器已经支持相当多的 CSS3 属性了。CSS3 提供了很多可以把玩的新特性,模糊了之前只...

    justjavac 评论0 收藏0

发表评论

0条评论

harriszh

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<