我有一个用PPr对象对齐的段落。所有段落都是合理的,但最后一行没有。
我知道有必要在最后一行之后使用LineBreak来给出正确的理由。我尝试使用设置了JC对象的PPr,但是不起作用
PPr bothPPr = factory.createPPr();
Jc justified = factory.createJc();
bothPPr.setJc(justified);
P p = factory.createP();
R r = factory.createR();
Text t = factory.createText();
t.setValue("Long text here...");
r.getContent().add(t);
r.getContent().add(factory.createBr());
p.getContent().add(r);
p.setPPr(bothPPr);
所有文字均正确对齐,但最后一行不是。
我最后一个实际的对齐行:
This is my last line
但是我想要
This is my last line
打开生成的docx文件后,我可以看到错误的理由。但是,如果我在行尾按Enter键,则说明行之有效。
答案 0 :(得分:0)
事实证明,实际上存在一个模糊的compat设置,它将提供您想要的行为。来自https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/cc844177%28v%3Doffice.14%29
[ISO / IEC 29500-1第一版]
17.15.3.5 doNotExpandShiftReturn(不要证明以软换行符结尾的行是正确的)
此元素指定应用程序是否应充分证明 当 父段使用jc元素(第17.3.1.13节)完全合理。
通常,应用程序应充分说明段落中的所有行 当使用jc元素指定该设置时,除了 段落的最后一行(以段落标记结尾的行)。 当此元素的val属性值为true时(或 等价),指定以换行符结尾的任何行 当该段规定 设置。