如何用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
相关产品推荐
相关产品推荐

