我正在使用apache-poi生成一个docx文件。在文档中,我添加了表格,其中的列有一个宽度,我希望能够固定。
目前,我使用这里描述的技术:http://apache-poi.1045710.n5.nabble.com/Is-there-a-way-to-set-the-width-of-a-column-in-XWPFTableCell-td5711491.html
基本上,这意味着设置
cell.getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(cols[j]));
对于该列的每个单元格进行操作。
问题在于,虽然该文件在MS Word中打开完美无缺,但是OpenOffice会以不同的方式解释我设置给列宽度的值。尽管MS Word显然假定20分之一点为单位,OpenOffice似乎使用点而不是分,因此当我在OO中打开生成的文档时,所有列的宽度都增加了20倍。
通常,当我在生成的输出中看到奇怪的东西时,我会解压缩docx文件,查看值应该是什么,并更改我的代码。但是OpenOffice似乎无法保存为docx,因此我无法在OO中更改值并将其保存回来,以查看Word是否仍然正确解释文档,以找到跨应用程序的解决方案。
有没有办法设置表列的宽度,使得OO和MS Word都可以以相同的方式解释它?