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

时间:2017-05-14 13:31:42

标签: java apache-poi xwpf

我想创建一个普通的表并设置它的方向“从右到左”“可以使用此选项设置Table Direction”,并使其“从左到右”对齐,可以设置为此选项Table Alignment

我试过这个:

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

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

1 个答案:

答案 0 :(得分:2)

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

ECMA-376 1st edition Part 4第2.4.23节第16行

  

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

ECMA-376 1st edition Part 4第2.4.1节第7行

  

当指定了此属性[bidiVisual(Visually Right to Left Table)]时,表格中所有单元格(和表级属性)的排序应该应用于表格,假设表格是正常的左边右表,但表格单元格应以从右到左的方向显示。 [示例:第一个表格单元格的左边框应显示在视觉从右到左表格中该单元格的右侧(最右边的单元格)。结束例子]