【问题标题】:How can I insert math equations in word from php?如何从 php 在 word 中插入数学方程式?
【发布时间】:2017-03-26 11:03:01
【问题描述】:

我需要使用php自动生成带有数学表达式的word文档。 最好使用 Microsoft 方程、MathType 或 word 的 07+ 方程编辑器。 我尝试使用 phpword 的函数 addObject() 将 MathType *.eps 文件作为 OLE 插入,但它的文件类型不支持。 我该怎么做?

    $word = new \PhpOffice\PhpWord\PhpWord();
    $section = $word->addSection();
    $section->addObject('formulas/Eqn1.eps');
    $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($word, 'Word2007');
    $objWriter->save('docs/helloWorld.docx');

错误:PhpOffice\PhpWord\Exception\InvalidObjectException

如果我尝试添加为数学:

$section->addText('
    <w:p w:rsidR="00D14CAF" w:rsidRDefault="00A07C15">
        <m:oMathPara>
            <m:oMath>
                <m:r>
                    <w:rPr>
                        <w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math"/>
                    </w:rPr>
                    <m:t>XXXXXXXXXXXXXX</m:t>
                </m:r>
            </m:oMath>
        </m:oMathPara>
        <w:bookmarkStart w:id="0" w:name="_GoBack"/>
        <w:bookmarkEnd w:id="0"/>
    </w:p>
        ');

*.docx 无法打开(错误)

【问题讨论】:

  • 请向我们展示您迄今为止尝试过的内容,即发布相关代码。

标签: math docx equation phpword mathtype


【解决方案1】:

文件无法打开,因为文本中有 xml 标记元素。 我需要将方程插入文档,最简单的方法是使用mathjax 渲染方程,然后使用html2canvas 保存图像并使用phpWord addImage() 插入。我希望这会有所帮助。

【讨论】:

  • 你能指导我怎么做吗?或者如果有任何其他解决方案可以将 mathML 方程打印到单词
【解决方案2】:

为新开发者添加答案。

php-docx 库可以在这里提供帮助,这里是一个例子

https://www.phpdocx.com/api-documentation/word-content/add-math-OMML-Word-document-with-PHP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    相关资源
    最近更新 更多