0

Apache POI (3.12 with ooxml-schemas 1.1) を介して XWPF docx にテーブルを挿入しようとしています。

私は使用しています

CTTblWidth oWidth = oTable.getCTTbl().getTblPr().addNewTblW();
oWidth.setType(STTblWidth.PCT);
oWidth.setW(BigInteger.valueOf(iWidth));

テーブルの幅を設定します。試行錯誤の結果、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();

しかし、これは DINA4 に対して 11906 の値を返しますが、これはかなり離れています。次のような方法でマージンを差し引く場合でも:

oPageSize.getW().subtract(oSect.getPgMar().getRight()).subtract(oSect.getPgMar().getLeft())

私はまだ目標から遠く離れています。

ここで私が見逃していることを誰かに教えてもらえますか? ありがとう

4

1 に答える 1

2

それ以外の

oWidth.setType(STTblWidth.PCT);

使用する

oWidth.setType(STTblWidth.DXA);

STTblWidth.PCT は、パーセントの 50 分の 1 で幅を指定するために使用されます。

STTblWidth.DXA は、ポイントの 20 分の 1 で幅を指定するために使用されます。1 インチは 72 ポイントです。

于 2015-08-22T12:35:32.353 に答える