Aspose word java版本无法创建OfficeMath,也无法修改OfficeMath

你好。我用的是java 24.5 最新版本的jar包,但是没有创建或者修改OfficeMath的api只有识别OfficeMath,还有左对齐右对齐这些。请问是没有这个功能吗?如果没有的话,请问有什么框架和方法可以做这些功能呢

@qhkyqhfe 您能否压缩并上传重现指定问题的输入文档和简化代码?我们将检查该问题并为您提供更多信息。

我想问一下 aspose java word 新创建一个OfficeMath对象 这个api是什么

@qhkyqhfe 不幸的是,目前无法创建新的 OfficeMath 节点。目前,已实现导入/导出过程中对这些节点的支持。还可以使用 Justification、DisplayType、MathObjectType 属性。

@qhkyqhfe 您可以使用方程字段创建数学对象,并将其转换为办公数学。此外,您还可以通过 Run 节点更改 OfficeMath 节点的文本,但在这种情况下,创建一个新字段并用旧字段替换可能会更快。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

FieldEQ field = (FieldEQ) builder.insertField(FieldType.FIELD_EQUATION, true);
builder.moveTo(field.getSeparator());
builder.write("\\f(d,dx)(u + v) = \\f(du,dx) + \\f(dv,dx)");
builder.moveTo(field.getStart().getParentNode());

builder.insertParagraph();

doc.save("field.docx");
Document doc = new Document("field.docx");

// Get all EQ Fields in the document.
FieldCollection fields = doc.getRange().getFields();
ArrayList<FieldEQ> eqFields = new ArrayList<>();
for (Field eqField : fields) {
    if (eqField.getType() == FieldType.FIELD_EQUATION) {
        eqFields.add((FieldEQ) eqField);
    }
}

// Convert EQ fields to OfficeMath
for (FieldEQ eq : eqFields) {
    OfficeMath math = eq.asOfficeMath();
    eq.getEnd().getParentNode().insertAfter(math, eq.getEnd());
    eq.remove();
}

doc.save("OfficeMath.docx");
Document doc = new Document("OfficeMath.docx");

OfficeMath officeMath = (OfficeMath) doc.getChild(NodeType.OFFICE_MATH, 0, true);
for (Run run : (Iterable<Run>) officeMath.getChildNodes(NodeType.RUN, true)) {
    System.out.print(run.getText());
}