【发布时间】:2014-07-02 20:55:44
【问题描述】:
我正在考虑尝试在 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 文档,我能找到的唯一行距设置决定了段落之前或之后的行距,而不是段落内的文本行距。
有人遇到过这种情况或有任何解决方法的例子吗?
【问题讨论】:
-
快速浏览一下 API,您是否尝试过
setSpacingLineRule(..)? -
我对此进行了研究,但 API 不清楚如何使用它来指示文档中的单间距、双间距和多间距。它似乎是一个只有 3 个值 EXACT、AUTO 和 AT_LEAST 的枚举器。
-
这些是基于options provided in MS Word
Single, Double, At least, Exactly, Multiple, ...看起来POI 只支持其中的一个子集。 -
这大概就是我所害怕的,我找不到任何其他文档来说明如何创建一个样式来应用到可以做同样事情的段落
-
所以,从技术上讲,这不是一个修复方法,只是一种解决方法。我发现如果我创建一个空白单词文档,设置段落行间距,保存它并将其用作 WXPFDocument 的起点,我可以将其恢复为单行间距。从技术上讲,这不是一个很好的解决方案,因为您无法在需要时来回切换,但出于我的目的,它可能对我有用。
标签: java apache coldfusion apache-poi