精华内容
下载资源
问答
  • PHP读取WORD中的数学公式
    千次阅读
    2021-03-19 17:12:51

    PHP解析WORD中的公式

    我这里用的是获取word文件中的XML信息,在XML中将公式转换为 MathML语言描述。
    PHP: 7.3
    扩展:zip

    获取WORD中的XML信息

    		date_default_timezone_set('Asia/Shanghai');
           $archive = new \ZipArchive();
           $result  = $archive->open($filename);
           if ($result === true) {
               $document = $archive->getFromName('word/document.xml');
           } else {
               //抛出异常 不能正确打开docx文件
           }
    

    $document 中就是获取的word的xml数据。

    WORD公式在XML中是如何描述的

    例如下面这个公式:
    在这里插入图片描述
    对应的word中的XML语言描述是:

    <m:oMath>
         <m:r>
             <w:rPr>
                 <w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/>
                 <w:color w:val="262626" w:themeColor="text1" w:themeTint="D9"/>
                 <w:sz w:val="22"/>
                 <w:szCs w:val="22"/>
                 <w14:textFill>
                     <w14:solidFill>
                         <w14:schemeClr w14:val="tx1">
                             <w14:lumMod w14:val="85000"/>
                             <w14:lumOff w14:val="15000"/>
                         </w14:schemeClr>
                     </w14:solidFill>
                 </w14:textFill>
             </w:rPr>
             <m:t>∃x∃y A(x,y)⇔∀y∃x A(x,y)</m:t>
         </m:r>
     </m:oMath>
    

    可以看到 公式是用 <m:oMath></m:oMath> 标签包裹的

    所以基本思路就是 使用正则匹配所有 m:oMath 标签中的内容 转换为 MathML语言 然后就可以在HTML页面展示了

    匹配和转换

    
    
            $xml = preg_replace_callback('/(<m:oMath>)([\s\S]*?)(<\/m:oMath>)/', function ($matches) {
    
                $mml = $this->xml_document . '<w:body><m:oMathPara>' . $matches[0] . '</m:oMathPara></w:body></w:document>';
                // var_dump($mml);
                $domDocument = new DomDocument();
                $domDocument->loadXML($mml);
                $numberings = $domDocument->getElementsByTagNameNS('http://schemas.openxmlformats.org/wordprocessingml/2006/main', 'body');
                $numberings = $numberings->item(0);
                $xsl        = new DOMDocument;
                $xsl->load("../OMML2MML.XSL");
                $processor = new XSLTProcessor();
                $processor->importStyleSheet($xsl);
                $omml                = $processor->transformToXML($numberings);
                $omml                = str_replace('<?xml version="1.0" encoding="UTF-8"?>', '', $omml);
                $omml                = str_replace('xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"', '', $omml);
                $omml                = str_replace("mml:", '', $omml);
                $omml                = str_replace("\n", '', $omml);
                $num                 = count($this->mml_arr);
                $this->mml_arr[$num] = $omml;
                return "{mosoteach_math_xml$num}";
            }, $xml);
    
            $xml = trim(strip_tags($xml));
            
    		//...
    
            foreach ($this->mml_arr as $key => $value) {
                $str = "{mosoteach_math_xml$key}";
                $xml = str_replace($str, $value, $xml);
            }
    
    

    上面是匹配的部分代码 我会把完成代码的压缩包放到文末。

    如何向WORD中写入公式

    很遗憾的是 我暂时没有找到直接向WORD中写入 oMath 这种标签的方法,只能先将 MathML 数据转为图片,然后插入WORD中

    MathML 数据转图片我是用的接口,百度上有很多这种服务 我用的是这个:

    https://www.wiris.net/demo/editor/render?mml=$mml

    注意这个接口的mml参数 需要用urlencode函数处理一下


    代码地址: https://download.csdn.net/download/qq_39281715/15936083

    更多相关内容
  • PHP操作WORD

    2013-07-05 15:02:56
    PHPword操作,讲文档写入word,以及获取word文档的内容
  • php_spire_cloud_Word.zip php操作word接口。免除一切烦恼,一切开发都那么顺利了。真爽。
  • php操作word内容替换

    2015-06-29 17:19:14
    php更改替换word内容,直接生成.doc文档,非常方便
  • 主要介绍了使用PHPWord生成word文档的方法,结合实例形式详细分析了PHPWord生成word文档的具体操作步骤与相关使用技巧,需要的朋友可以参考下
  • PHPWord中文手册

    2018-01-25 14:33:04
    phpword 中文手册,简介,方便使用php进行word操作~~~~~~~~~~~~~~~~~~~~~~~~
  • phpword源码

    2018-04-15 09:37:38
    1.这个资源也是在网上找的,感谢大神 2.只要解压在网站根目录下就可以用,如口文件为demo.php 3.已经解决了中文乱码问题 4.demo中已经有很多操作word的事例 5.至于word版本,可以在最后修改就可以
  • PHP 使用word模板生成word文档示例

    千次阅读 2020-09-23 12:46:09
    use PhpOffice\PhpWord\TemplateProcessor; use Think\Controller; class TestController extends Controller { /** * word模板生成word文档 * composer安装命令:composer require phpoffice/phpword * 地址:...
    <?php
    namespace Home\Controller;
    use PhpOffice\PhpWord\TemplateProcessor;
    use Think\Controller;
    class TestController extends Controller {
        /**
         * word模板生成word文档
         * composer安装命令:composer require phpoffice/phpword
         * 地址:https://packagist.org/packages/phpoffice/phpword
         * word模板中的变量写法示例:用户:${username}  头像:${headerImg}
         */
        public function phpword(){
            //1.加载word模版
            $TemplateProcessor = new TemplateProcessor('template/word_1.docx');
    
            //2.给模板中的变量赋值
            $TemplateProcessor->setValue('username','赵辉');
            $TemplateProcessor->setValue('sex','男');
            $TemplateProcessor->setImageValue('headerImg','template/headerImg.jpg');
    
            //2.1还可以同时给多个变量同时赋值
            $TemplateProcessor->setValues([
                'username' => '赵辉',
                'sex' => '男'
            ]);
    
            //2.2还可以给图像设置样式
            $TemplateProcessor->setImageValue('headerImg', [
                'path' => 'template/headerImg.jpg',
                'width' => 200,
                'height' => 200,
                'ratio' => false
            ]);
    
            //3.给模板循环数次
            $replacements = [
                ['user'=>'张三','address'=>'北京市'],
                ['user'=>'李四','address'=>'河北省'],
            ];
            $TemplateProcessor->cloneBlock('block_name', 0, true, false, $replacements);
    
            //4.给word模板克隆表格行
            $values = [
                ['userId'=>1,'userName'=>'老王','userAddress'=>'建设路'],
                ['userId'=>2,'userName'=>'老赵','userAddress'=>'青园街'],
            ];
            $TemplateProcessor->cloneRowAndSetValues('userId', $values);
    
            //5.生成word文档并保存
            $TemplateProcessor->saveAs('template/'.date('Y-m-d-H-i-s').'.docx');
        }
        
        
    }

    模版示例: 

    生成示例:

    展开全文
  • 测试通过,请看我的测试说明。
  • phpword操作

    2013-06-08 11:27:18
    php操作word文档doc、docx,带中文说明
  • 主要介绍了php转换上传word文件为PDF的方法,结合实例形式分析了php基于COM组件针对word文件的格式转换相关操作技巧,需要的朋友可以参考下
  • 主要介绍了php实现word转html的方法,涉及PHP调用com组件操作word文档的相关技巧,需要的朋友可以参考下
  • php生成word

    2012-09-14 10:23:31
    下载后放到php环境下可以直接运行,我做好的一个例子,直接运行。。
  • php word 操作

    2011-08-18 18:43:16
    php操作word的类文件,加demo。希望能帮到大家。
  • 主要介绍了LINUX下PHP程序实现WORD文件转化为PDF文件的方法,涉及php针对Word文档与pdf格式文件的相关操作技巧,需要的朋友可以参考下
  • PHP读取word文档的方法分析

    千次阅读 2019-11-09 15:14:22
    二、开启之后就可以试下如下操作 ● 建立一个指向新COM组件的索引 ● 显示目前正在使用的Word的版本号 ● 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真) ● 打开一个文档 ● 读取文档内容 ● ...

    一、先开启php.ini的COM

    1.设置php扩展目录
    在这里插入图片描述
    2.添加dll配置
    在这里插入图片描述
    3.重启apache使其php.ini配置生效
    在这里插入图片描述
    二、开启之后就可以试下如下操作

    ● 建立一个指向新COM组件的索引

    ● 显示目前正在使用的Word的版本号

    ● 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)

    ● 打开一个文档

    ● 读取文档内容

    ● 输出文档内容

    ● 关闭word的连接

    ● 清空对象

    具体代码如下:
    在这里插入图片描述
    效果如下:
    在这里插入图片描述
    本文参考地址:https://www.php.cn/php-weizijiaocheng-434900.html

    展开全文
  • PHP操作Word文档的方法有很多,这里再为大家提供一种方法。
  • 主要介绍了PHP读取word文档的方法,较为详细的分析了COM组件的开启、属性设置及基于COM组件打开并读取word文档的操作技巧,需要的朋友可以参考下
  • 主要介绍了php实现将上传word文件转为html的方法,涉及php针对word文件操作的相关技巧,需要的朋友可以参考下
  • 以下是您可以使用PHPWord库执行的一些操作: 设置文档属性,例如标题,主题和创建者。 使用不同的设置创建文档部分,例如纵向/横向,页面大小和页码 为每个部分创建页眉和页脚 设置默认字体类型,字体大小和段落...
  • 找了一大圈看到一个很好用的解决办法 https://blog.csdn.net/weixin_33817333/article/details/89122775 博主之前的文章 主要做法就是变量替换check 程序控制变量输出复选框 最后效果

    找了一大圈看到一个很好用的解决办法

    https://blog.csdn.net/weixin_33817333/article/details/89122775

    博主之前的文章

    主要做法就是变量替换check 程序控制变量输出复选框

     

     逻辑自己根据自己的需求来

    最后效果 

    展开全文
  • 使用PHPWordWord文件做模板替换

    千次阅读 2016-12-19 05:52:35
    因工作需要,使用了版本比较旧的PHPWord项目官方已不见维护更新,上次版本更新是在Fri Jul 8, 2011 at 8:00 AM如果PHP版本>=5.3.3,强烈推荐使用PHPOffice/PHPWord这个开源项目本篇针对的为旧版本的PHPWord 基本...
  • 此工具包里面包含了Spire.Cloud.Word的PHP源码以及Api Demo,可参考demo用来操作Word文档。
  • php利用com转出word内容

    2015-06-18 11:44:14
    doc,docx内容转出到文本|数据库 ...中配置extension=php_com_dotnet.dll ,如果PHP VERSION则不需要。 * 2.必需安装office套件 * 3.如果执行失败需重命名doc文件名,并且任务管理器中结束winword.exe进程
  • PHP操作doc文档之PHPWord0.6.1

    千次阅读 2016-07-22 10:50:17
    【住管系统】{根据用户在微信端对模板doc的选择来生成对应文档。例:用户勾选房屋类别为公租房,则需要在对应的表格中生成...解决办法:利用PHPWord0.6.1PHPWord官方网址下载生成表格,在数据库中取出用户选择的数据:
  • php直接调用然后可以进行svm等分类操作 该工具在已经有训练数据后调用 项目地址 github:https://github.com/qieangel2013/phpword2vec oschina:https://gitee.com/qieangel2013/phpword2vec 如果你对我的辛勤劳动...
  • @[TOC](PHPWord 操作 word文档报错ZipArchive::locateName(): Invalid or uninitialized Zip object总结) 一、文件问题 我碰到的就是第一种情况了,docx文件有问题,office文件经过编辑后都会被加密了,于是我新建了一...
  • 这个 PHP 应用程序会将任何 PDF 文件转换为 Word 文档。 此应用程序使用非常 Pdf 桌面应用程序,它将从批处理文件中调用该非常 pdf 桌面应用程序。 要设置,请按照 assets/software/reference-pics/ 目录中的说明...
  • PHP读取word文档 导入word文档

    千次阅读 2019-10-26 15:50:48
    PHP读取word文档 导入word文档PHP读取word文档 导入word文档openoffice把word转html用phpquery读取html的内容 PHP读取word文档 导入word文档 用openoffice和phpquery实现word文档的导入 读取word文档数据 前一段时间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,715
精华内容 15,086
关键字:

php操作word