2016-05-12 4 views
1

Я использую класс apache poi CTPageMar для установки поля страницы на некоторое значение, заданное пользователем. Проблема в том, что я не нашел то, что является единицей значений, которые должны передаваться в функциях setLeft, setRight, setTop и setBottom. Я пробовал см, пиксели, дюймы, но все они кажутся неправильными. Любая идея?Единицы измерения 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 (двадцатая точка дюйма). Один твип - 1/1440 дюйма. Таким образом,

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

будет 1 дюйм левого края.

+0

Большое спасибо. Оно работает :) –

Смежные вопросы