如何制作多页docx?

时间:2012-08-15 11:27:35

标签: java apache-poi docx

    InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(TEMPLATE);
    XWPFDocument document = new XWPFDocument(is);
    List<IBodyElement> elements = document.getBodyElements();
    for (int i = 0; i < elements.size(); i++) {
        document.removeBodyElement(i);
    }

    CTBody body = document.getDocument().getBody();
    CTSectPr docSp = body.getSectPr();

    CTPageSz pageSize = docSp.getPgSz();
    CTPageMar margin = docSp.getPgMar();

    BigInteger pageWidth = pageSize.getW();
    pageWidth = pageWidth.add(BigInteger.ONE);
    BigInteger totalMargins = margin.getLeft().add(margin.getRight());
    BigInteger contentWidth = pageWidth.subtract(totalMargins);

    ...

    XWPFTable table = document.createTable(totalRows, totalColumns);

从模板开始,我创建一个XWPFDocument并添加一个表。我怎么能在页面上添加多个表?也就是说,如何插入分页符?

2 个答案:

答案 0 :(得分:5)

我只是一个使用POI生成.docx文件的初学者,但到目前为止我已经想出了如何插入分页符。创建XWPFParagraph后,可以像这样插入分页符:

XWPFDocument document = new XWPFDocument(is);
...
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.addBreak(BreakType.PAGE);

希望这有帮助。

答案 1 :(得分:2)

另一种方法是使用XWPFParagraph设置分页符:

XWPFDocument document = new XWPFDocument(is);
...
XWPFParagraph paragraph = document.createParagraph();
paragraph.setPageBreak(true);