Apache POI Word XWPF 表的方向和对齐方式



我想创建一个普通表格并设置它的方向"从右到左"可以使用此选项表格方向"设置,并使其对齐"从左到右",可以使用此选项设置表格对齐方式

我试过这个:

XWPFTable myTable = myDocument.createTable();
CTTbl cttblp = myTable.getCTTbl();
CTTblPr cttblpr;
cttblpr = (cttblp.getTblPr() == null ? cttblp.addNewTblPr() : cttblp.getTblPr());
//table direction
cttblpr.addNewBidiVisual().setVal(STOnOff.ON);
//table alignment
CTJc ctjc = (cttblpr.isSetJc() ? cttblpr.getJc() : cttblpr.addNewJc());
ctjc.setVal(STJc.LEFT);

我所理解的是,表格方向的部分会阻止发生任何对齐。

表方向不会阻止对齐的发生,它会逆转对齐的影响。因此,在您的情况下,如果将表格方向设置为Right-to-Left,则必须将表格对齐方式设置为Right才能显示左对齐。对于具有左侧和右侧可视化效果的所有表属性都是如此,例如,左边框现在将显示在右侧,反之亦然。

请参阅 ECMA-376 第 1 版第 4 部分第 2.4.23 节第 16 行

如果在表格上省略此属性 [jc(表格对齐方式)],则对齐方式应由关联的表格样式确定。如果未在样式层次结构中指定此属性,则表格应左对齐,前导边距(从左到右的表格中的左边距或从右到左的表格中的右边距)缩进为零。

和 ECMA-376 第 1 版第 4 部分第 2.4.1 节第 7 行

指定此属性 [bidiVisual(视觉上从右到左表)] 时,此表中所有单元格(和表级属性)的顺序应应用于表,前提是该表是正常的从左到右表,但表单元格应按从右到左的方向显示。[示例:第一个表格单元格的左边框应显示在视觉上从右到左表格中该单元格的右侧(这将是最右侧的单元格)。

最新更新