Apache poi分页符

Ben*_*Man 7 java apache ms-word page-break

我需要创建一个简单的word文档,用于从java程序打印.必须将输出打印在单独的页面上.我正在使用以下代码:

XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("TITLE");
run.addCarriageReturn();
run.setText("some text and stuff here");
run.addBreak(BreakType.PAGE);
run.setText("more text");
run.addCarriageReturn();
run.setText("one more line");
Run Code Online (Sandbox Code Playgroud)

麻烦的是,在此分页符后我尝试插入的任何内容都会在页面上自行显示(上例中的最后两行文本将出现在不同的页面上).就好像每个语句后都有一个'自动分页符'.我尝试过使用new run或new paragraph,但结果总是一样的.有任何想法吗?开始在这里变得非常沮丧....

Ben*_*Man 6

找到了答案 - 不确定这是最好的方法。需要在页面最后一行后加一个回车,不然也跳到下一页。然后添加 Break (WORD_WRAPPING),并开始下一页的新运行。(此解决方案的唯一问题是它会在每个新页面的顶部留下一个空行!)

XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("TITLE");
run.addCarriageReturn();
run.setText("some text and stuff here");
run.addCarriageReturn();                 //separate previous text from break
run.addBreak(BreakType.PAGE);
run.addBreak(BreakType.WORD_WRAPPING);   //cancels effect of page break
WXPFRun run2 = paragraph.createRun();    //create new run
run2.setText("more text");
run2.addCarriageReturn();
run2.setText("one more line");
Run Code Online (Sandbox Code Playgroud)


小智 6

XWPFDocument document = new XWPFDocument();
...
XWPFParagraph paragraph = document.createParagraph();
paragraph.setPageBreak(true);
Run Code Online (Sandbox Code Playgroud)