Aspose.word html转word如何指定位置插入

测试1020.docx (30.5 KB)
我想在word文档中的“Index”位置插入目录,而不是在文档开头生成目录,该怎么实现?

@pengjg 您可以使用这样的代码来实现结果:

Document doc = new Document("input.docx");
DocumentBuilder builder = new DocumentBuilder(doc);

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true))
{
    if (para.getParagraphFormat().getStyleIdentifier() == StyleIdentifier.NORMAL
            && para.getText().trim().equals("Index"))
    {
        builder.moveTo(para);
        builder.writeln();
        builder.getParagraphFormat().clearFormatting();
        builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");
        builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        break;
    }
}

doc.updateFields();
doc.save("output.docx");

非常实用,感谢您的回复。

还有个问题请教一下 ,html字符串转word后,怎么设置表格行高
24821a7279caf833436de8c8be0625c.png (14.4 KB)

@pengjg 您可以使用以下属性设置高度:

此外,请查看有关表格格式的文档:

我没描述清楚问题,
test (10).zip (391.7 KB)
html字符串转word文档后,发现word文档里表格的行距会自动变大,
且用table.RowFormat.Height发现word表格行的行距无法继续缩小了, 怎么让word文档中表格的行距和html表格的行距保持一致 (问题可看附件) ?

@pengjg 我看不到 docx 和 html 文件中文本为 "1 12 "的表格行高有何不同。 行高取决于几个选项,包括字体和段落格式。如果您无法更改行高,您可以尝试通过配置字体大小或段落前后的空间来减小大小。

以下是它的代码示例:

Document doc = new Document("test (10).docx");
Table table = (Table) doc.getChild(NodeType.TABLE, 2, true);
for (Row row : table.getRows()) {
    for (Cell cell : row.getCells()) {
        for (Run run : cell.getFirstParagraph().getRuns())
            if (run.getText().trim().contains("12")) {
                System.out.println(run.getText());
                run.getParentParagraph().getParagraphFormat().setSpaceAfter(0);
                run.getParentParagraph().getParagraphFormat().setSpaceBefore(0);
            }
    }
}

doc.save("out.docx");