有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java设置POI XWPFParagraph行间距

我想在使用POI库创建的文档中的所有段落上设置行距。 我想将段落行距设置为1.0,并删除段落前后的空格,但生成的文档继续使用1.15行距,并在段落后添加空格。 这是我的代码:

for (XWPFParagraph paragraph : doc.getParagraphs()) {
        paragraph.setSpacingAfter(0);
        paragraph.setSpacingAfterLines(0);
        paragraph.setSpacingBefore(0);
        paragraph.setSpacingBeforeLines(0);
        paragraph.setSpacingLineRule(LineSpacingRule.EXACT);
        paragraph.setVerticalAlignment(TextAlignment.TOP);
    }

请帮忙, 谢谢


共 (3) 个答案

  1. # 1 楼答案

    此外,这也是另一种解决方案 使用它;必须在pom中添加ooxml模式依赖项。xml

        CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
            CTPageMar pageMar = sectPr.addNewPgMar();
            pageMar.setLeft(BigInteger.valueOf(720L));
            pageMar.setTop(BigInteger.valueOf(720L));
            pageMar.setRight(BigInteger.valueOf(720L));
            pageMar.setBottom(BigInteger.valueOf(7200L));
    
  2. # 2 楼答案

    可以使用以下代码将段落行距设置为单行:

    public void setSingleLineSpacing(XWPFParagraph para) {
        CTPPr ppr = para.getCTP().getPPr();
        if (ppr == null) ppr = para.getCTP().addNewPPr();
        CTSpacing spacing = ppr.isSetSpacing()? ppr.getSpacing() : ppr.addNewSpacing();
        spacing.setAfter(BigInteger.valueOf(0));
        spacing.setBefore(BigInteger.valueOf(0));
        spacing.setLineRule(STLineSpacingRule.AUTO);
        spacing.setLine(BigInteger.valueOf(240));
    }
    
  3. # 3 楼答案

    paragraph.setSpacingBetween(1);
    

    它将在段落行之间创建1的间距