使用Apache POI docx在MS Word文档中进行间距和边距设置

Mah*_*rma 1 java docx apache-poi

我有两个段落,我想在每行之前有100磅的空间.我们有办法Apache POI吗?

这是代码片段

XWPFDocument doc = new XWPFDocument();
XWPFParagraph documentTitle = doc.createParagraph();

documentTitle.setAlignment(ParagraphAlignment.CENTER);
XWPFRun run = documentTitle.createRun();

run.setText("Paragraph 1");
run.setBold(true);
run.setFontFamily("Calibri");
run.setFontSize(13);
run.setColor("4F81BD");

run.addBreak();

run.setText("Paragraph 2");
run.setBold(true);
run.setFontFamily("Calibri");
run.setFontSize(13);
run.setColor("4F81BD");
Run Code Online (Sandbox Code Playgroud)

这里如何100 pt在两段之间添加空格?有什么方法可以实现这个目标吗? addBreak()没有在两条线之间保留任何空间.

以及如何在docx中设置边距?

任何帮助,将不胜感激.

谢谢.

Mah*_*rma 6

得到了答案..

    documentTitle.setAlignment(ParagraphAlignment.CENTER);
    // This does the trick
    documentTitle.setSpacingBefore(100);
Run Code Online (Sandbox Code Playgroud)

它在文本的每一行之间留下了100pt的空间

如果要为文档添加自定义边距.使用此代码.

    CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
    CTPageMar pageMar = sectPr.addNewPgMar();
    pageMar.setLeft(BigInteger.valueOf(720L));
    pageMar.setTop(BigInteger.valueOf(1440L));
    pageMar.setRight(BigInteger.valueOf(720L));
    pageMar.setBottom(BigInteger.valueOf(1440L));
Run Code Online (Sandbox Code Playgroud)