gpt4 book ai didi

java - Apache poi XWPF 段落行间距

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:31 26 4
gpt4 key购买 nike

我正在尝试使用 Java/Coldfusion 中的 Apache Poi 构建一个 word 文档。到目前为止,它让我可以做很多我想要的格式,除了段落的行间距。有谁知道我如何将段落设置为单行间距?它不断构建具有多段间距的文档,间距为 1.15。

代码示例如下:

document = loader.create("org.apache.poi.xwpf.usermodel.XWPFDocument");
ParagraphAlignment = loader.create("org.apache.poi.xwpf.usermodel.ParagraphAlignment" );
paragraphOne = document.createParagraph();
paragraphOne.setAlignment(ParagraphAlignment.CENTER);

paragraphOneRunOne = paragraphVar.createRun();
paragraphOneRunOne.setFontFamily('Cambria');
paragraphOneRunOne.setFontSize(12);
paragraphOneRunOne.setBold(false);
paragraphOneRunOne.setText(Here's one line of text in this paragraph);
paragraphOneRunOne.addBreak();

paragraphOneRunTwo = paragraphVar.createRun();
paragraphOneRunTwo.setFontFamily('Cambria');
paragraphOneRunTwo.setFontSize(12);
paragraphOneRunTwo.setBold(false);
paragraphOneRunTwo.setText(Here's a second line of text in this paragraph);
paragraphOneRunTwo.addBreak();

我查看了示例和 api 文档,我能找到的唯一行间距设置决定了段落之前或之后的行间距,而不是段落内的文本行间距。

有没有人以前遇到过这个问题或者有任何解决方法的例子?

最佳答案

我也遇到了同样的问题,并在查看 ooxml-schemas 源代码和生成的 docx 文件的内部结构后找到了解决方案。这是代码

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));
}

关于java - Apache poi XWPF 段落行间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com