2015-04-22 257 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

相關問題