2015-04-22 222 views
5

我想为使用apache poi-3.9创建的word文档设置页边距。我发现它可以使用CTPageMarCTPageMar没有得到解决。我使用的Apache POI-3.9如何使用apache poi为word文档设置页边距?

我想这

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)); 
+0

看到这个主题 - http://apache-poi.1045710.n5.nabble.com/How-to-change-margins-of-a-word-document-td5710067.html – LittlePanda

+0

感谢@LittlePanda由mark帮助,但它是为doc格式而不是为docx工作。如何在创建xwpf文档时设置边距。 (链接中的代码描述了现有文档的设置边距) – imdzeeshan

+0

您可能正在使用XWPFDocument而不是HWPF吗? – LittlePanda

回答

3

据我了解,这个问题是不相关的所提供的代码,它与缺少CTPageMar类连接。

缺课问题在Apache POI FAQ明确解释的来源:

要使用新的OOXML文件格式,POI需要包含 文件格式的XSD罐子[...]你可以下载JAR手动从POI Maven仓库中获取。

来自FAQ的URL无效,但您可以在central maven repo找到所需的jar。

+0

需要注意的是,包含所有内容的ooxml-schemas文件与poi-ooxml-schemas文件不同。从FAQ: “所有模式的完整jar是ooxml-schemas-1.3.jar,目前约为15mb,较小的poi-ooxml-schemas jar只有4mb左右,后者的jar文件只包含通常使用的部分虽然。“ – jamsandwich

1

要解决类CTPageMar,您必须将包org.apache.poi:ooxml-schema添加到您的类路径中。相应的JAR包含所有模式。你可以找到更多的信息here

相关问题