how to set page margins for word document using ap

2019-06-16 06:41发布

I want to set page-margins for word document created using apache poi-3.9. I found it can be done using CTPageMar but CTPageMar is not being resolved. I am using apache poi-3.9

I tried this

CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
    CTPageMar pageMar = sectPr.addNewPgMar();
    pageMar.setLeft(BigInteger.valueOf(720L));
    pageMar.setTop(BigInteger.valueOf(1440L));
    pageMar.setRight(BigInteger.valueOf(720L));
    pageMar.setBottom(BigInteger.valueOf(1440L));

2条回答
劫难
2楼-- · 2019-06-16 07:31

To resolve the class CTPageMar you will have to add the package org.apache.poi:ooxml-schema to your classpath. The corresponding JAR contains all schemas. You can find more information here.

查看更多
何必那么认真
3楼-- · 2019-06-16 07:35

As far as I understand, the problem is not related to the provided code, it is connected with missing CTPageMar class.

The source of missing classes problem is clearly explained in Apache POI FAQ:

To use the new OOXML file formats, POI requires a jar containing the file format XSDs [...] You can download the jar by hand from the POI Maven Repository.

URL from FAQ is not working, but you can find required jar in central maven repo.

查看更多
登录 后发表回答