请问如何合并若干个OfficeMath对象?要求保留原有的格式

请问如何合并若干个OfficeMath对象?要求保留原有的格式,包括括号这些属性

Could you please provide more information about the specific Aspose product you are using and the programming language you are working with? This will help us provide a more accurate answer.

我使用的是aspose word java产品

@qhkyqhfe 您可以使用以下简单代码来连接 OfficeMath 节点:

Document doc = new Document("C:\\Temp\\in.docx");

// Get two top level OfficeMath objects.
// For demonstration purposes there are two paragraph with OfficeMath objects.
OfficeMath math1 = (OfficeMath)doc.getFirstSection().getBody().getFirstParagraph().getChild(NodeType.OFFICE_MATH, 0, true);
OfficeMath math2 = (OfficeMath)doc.getFirstSection().getBody().getLastParagraph().getChild(NodeType.OFFICE_MATH, 0, true);

// Append content of one OfficeMath to another.
while (math2.hasChildNodes())
    math1.appendChild(math2.getFirstChild());

// Remove the second OfficeMath.
math2.remove();

doc.save("C:\\Temp\\out.docx");

不好意思。还有一个问题。如何根据一个字符串创建出一个OfficeMath对象,在不使用DocumentBuilder的情况下。之前您给我的例子是通过DocumentBuilder的insertField方法实现的。但是实际用起来DocumentBuilder并不方便。
我尝试用Paragraph的appendField方法直接将表达式的字符串添加到域里,但是报错了。错误是 Bookmark相关的错误

@qhkyqhfe 您可以考虑使用以下代码来插入字段,而无需使用 DocumentBuilder:

new FieldBuilder(FieldType.FIELD_EQUATION)
                .addSwitch("\\f")
                .addArgument("(d,dx)(u+v)")
                .addArgument("=")
                .addSwitch("\\f")
                .addArgument("(du,dx)+")
                .addSwitch("\\f")
                .addArgument("(dv,dx)")
                .buildAndInsert(doc.getFirstSection().getBody().getFirstParagraph());

doc.getFirstSection().getBody().getFirstParagraph().appendField("EQ \\f(d,dx)(u + v) = \\f(du,dx) + \\f(dv,dx)");