You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Aspose.Words(Java)为每页设置特定页眉/页脚?

Java版Aspose.Words设置每页特定页眉/页脚的正确方法

使用Java版Aspose.Words库,如何为包含不同节数和页数的文档设置每页特定的页眉/页脚?

我曾处理过第1节有2页、其余节各1页的文档,原本以为必须让节数与页数相等,才能给每页设置自定义页脚。尝试过相关方案后,代码无法正常工作:所有页脚文本都被写入同一页的页脚中,且识别出的页数多于实际页数。

2023-10-24 更新
以下是我尝试添加自定义页脚的方法,但实际并未成功添加任何内容:

private void addCustomFooter() {
    var collector = new LayoutCollector(builder.getDocument());
    NodeCollection<Paragraph> paragraphs = builder.getDocument().getChildNodes(NodeType.PARAGRAPH, true);
    log.info("Paragraphs total count={}", paragraphs.getCount());
    int pageIndex = 1;
    for (final Paragraph para : paragraphs) {
        if (collector.getStartPageIndex(para) == pageIndex) {
            log.info("Paragraph, pageIndex={}", pageIndex);
            builder.moveTo(para.appendChild(new Run(builder.getDocument())));
            builder.insertBreak(BreakType.SECTION_BREAK_CONTINUOUS);
            pageIndex++;
        }
    }
    pageIndex = 1;
    
    for (final Section section : builder.getDocument().getSections()) {
        log.info("Section. pageIndex={}", pageIndex);
        var headerFooterType = HeaderFooterType.FOOTER_PRIMARY;
        HeaderFooter footer = section.getHeadersFooters().getByHeaderFooterType(headerFooterType);
        if (footer == null) {
            footer = new HeaderFooter(builder.getDocument(), headerFooterType);
            section.getHeadersFooters().add(footer);
        }
        builder.moveToSection(builder.getDocument().getSections().indexOf(section));
        builder.moveToHeaderFooter(headerFooterType);
        builder.write("Page: " + pageIndex);
        pageIndex++;
    }
}

内容的提问来源于stack exchange,提问作者Vytautas Arminas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:46:26