通过 CTPageSz 的 POI XWPF 页面大小已关闭
POI XWPF pagesizes via CTPageSz are off
我正在尝试通过 Apache POI(3.12 和 ooxml-schemas 1.1)将 tables 插入 XWPF docx。
我正在使用
CTTblWidth oWidth = oTable.getCTTbl().getTblPr().addNewTblW();
oWidth.setType(STTblWidth.PCT);
oWidth.setW(BigInteger.valueOf(iWidth));
设置我的 table 的宽度。
通过反复试验,iWidth = 5000 似乎是一个合理的值。
我试图通过
动态获取页面宽度
CTBody oBody = m_oDocx.getDocument().getBody();
if (!oBody.isSetSectPr()) oBody.addNewSectPr();
CTSectPr oSect = oBody.getSectPr();
if (!oSect.isSetPgSz()) oSect.addNewPgSz();
CTPageSz pageSize = oSect.getPgSz();
BigInteger oPageSize.getW();
但是这个 returns 与 DINA4 的值为 11906 相去甚远。
即使通过这样的方式减去边距:
oPageSize.getW().subtract(oSect.getPgMar().getRight()).subtract(oSect.getPgMar().getLeft())
我还差得远
任何人都可以给我提示我在这里缺少什么吗?
谢谢
而不是
oWidth.setType(STTblWidth.PCT);
使用
oWidth.setType(STTblWidth.DXA);
STTblWidth.PCT用于指定宽度,单位为百分之五十分之一。
STTblWidth.DXA 用于指定宽度的二十分之一点。 72分就是一英寸
我正在尝试通过 Apache POI(3.12 和 ooxml-schemas 1.1)将 tables 插入 XWPF docx。
我正在使用
CTTblWidth oWidth = oTable.getCTTbl().getTblPr().addNewTblW();
oWidth.setType(STTblWidth.PCT);
oWidth.setW(BigInteger.valueOf(iWidth));
设置我的 table 的宽度。 通过反复试验,iWidth = 5000 似乎是一个合理的值。
我试图通过
动态获取页面宽度CTBody oBody = m_oDocx.getDocument().getBody();
if (!oBody.isSetSectPr()) oBody.addNewSectPr();
CTSectPr oSect = oBody.getSectPr();
if (!oSect.isSetPgSz()) oSect.addNewPgSz();
CTPageSz pageSize = oSect.getPgSz();
BigInteger oPageSize.getW();
但是这个 returns 与 DINA4 的值为 11906 相去甚远。 即使通过这样的方式减去边距:
oPageSize.getW().subtract(oSect.getPgMar().getRight()).subtract(oSect.getPgMar().getLeft())
我还差得远
任何人都可以给我提示我在这里缺少什么吗? 谢谢
而不是
oWidth.setType(STTblWidth.PCT);
使用
oWidth.setType(STTblWidth.DXA);
STTblWidth.PCT用于指定宽度,单位为百分之五十分之一。
STTblWidth.DXA 用于指定宽度的二十分之一点。 72分就是一英寸