如何识别段落是否落在Apache POI的分页符中

时间:2015-06-15 13:23:22

标签: java ms-word apache-poi docx page-break

我目前正在使用Apache POI创建一个简单的.docx文件。问题是如果一个段落落在分页符上,我需要将整个段落移到下一页。唯一的问题是,我不确定如何确定段落是否落在分页符上。

因此我的问题是:

有没有办法确定段落是否落在Apache POI的分页符中?

例如:

本段:

enter image description here

将在分页符中被识别为自动更改为:

enter image description here

1 个答案:

答案 0 :(得分:0)

这是一个示例代码,可能不是100%。尝试一次,让我知道,如果我可以根据你的情况改进它,那肯定会做。

假设您使用的是XWPFDocument文档类

ExtendedProperties ep = document.getProperties().getExtendedProperties();
int numberOfLines = ep.getUnderlyingProperties().getLines());

上面提到的代码将为您提供文档中的行数,并将其与您放入文档中的行数相匹配。

例如: -

  1. 假设numberOfLines返回50。

  2. 使用计数器检查您在文档中打印的行数,如果您觉得段落已到达并且行数几乎为40,请在那里休息一下。

    ExtendedProperties ep = document.getProperties().getExtendedProperties(); int numberOfLines = ep.getUnderlyingProperties().getLines()); XWPFDocument document = new XWPFDocument(); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); //create new run Page n run.setText("TITLE");
    //……………………………Your Logic here……………………………// run.addCarriageReturn(); //separate previous text from break run.addBreak(BreakType.PAGE); //Break the page run.addBreak(BreakType.WORD_WRAPPING); //cancels effect of page break WXPFRun run2 = paragraph.createRun(); //create a new run for pane n+1

  3. 希望有助于接近您的需求。

    由于