如何在php中插入数学方程?

时间:2016-11-12 08:45:15

标签: math docx equation phpword mathtype

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

    $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没有打开(错误)

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

为新开发者添加答案。

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

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