2016-05-12 13 views
1

私はapache poi CTPageMarクラスを使用して、ページマージンをユーザーが指定した値に設定しています。 問題は、関数setLeft、setRight、setTopおよびsetBottomで渡されなければならない値の単位が何であるか分かりませんでした。 私はcm、ピクセル、インチを試しましたが、それらはすべて間違っています。 CTPageMar値の単位は?

XWPFDocument wordDocument = new XWPFDocument(new FileInputStream(input)); 
CTSectPr sectPr = wordDocument.getDocument().getBody().addNewSectPr(); 
CTPageMar pageMar = sectPr.addNewPgMar(); 
pageMar.setLeft(BigInteger.valueOf(left)); 
pageMar.setTop(BigInteger.valueOf(top)); 
pageMar.setRight(BigInteger.valueOf(right)); 
pageMar.setBottom(BigInteger.valueOf(bottom)); 
wordDocument.write(new FileOutputStream(output)); 
+0

Wordで既知の値を設定し、Apache POIでそれを読み取った場合、何が表示されますか? – Gagravarr

答えて

3

測定単位はTwip(20分の1インチポイント)です。 1つのtwipは1/1440インチです。従って

... 
    int twipsPerInch = 1440; 
    pageMar.setLeft(BigInteger.valueOf(1 * twipsPerInch)); 
... 

は1インチ左余白です。

+0

ありがとうございました。できます :) –

関連する問題