我目前正在使用Apache POI创建一个简单的.docx文件。问题是如果一个段落落在分页符上,我需要将整个段落移到下一页。唯一的问题是,我不确定如何确定段落是否落在分页符上。
因此我的问题是:
有没有办法确定段落是否落在Apache POI的分页符中?
例如:
本段:
将在分页符中被识别为自动更改为:
答案 0 :(得分:0)
这是一个示例代码,可能不是100%。尝试一次,让我知道,如果我可以根据你的情况改进它,那肯定会做。
假设您使用的是XWPFDocument文档类
ExtendedProperties ep = document.getProperties().getExtendedProperties();
int numberOfLines = ep.getUnderlyingProperties().getLines());
上面提到的代码将为您提供文档中的行数,并将其与您放入文档中的行数相匹配。
例如: -
假设numberOfLines
返回50。
使用计数器检查您在文档中打印的行数,如果您觉得段落已到达并且行数几乎为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
希望有助于接近您的需求。
由于