【问题标题】:Apache POI Word XWPF table direction and alignmentApache POI Word XWPF 表方向和对齐
【发布时间】:2017-05-15 19:33:05
【问题描述】:

我想创建一个普通表格并将其方向设置为'从右到左'“可以使用此选项设置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);

据我所知,桌子方向的部分阻止了任何对齐的发生。

【问题讨论】:

    标签: java apache-poi xwpf


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 老兄 .. 你太棒了 :D :*
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 2016-11-16
    相关资源
    最近更新 更多