2015-04-22 30 views
5

Chcę ustawić marginesy strony dla dokumentu tekstowego utworzonego za pomocą apache poi-3.9. Znalazłem, że można to zrobić, używając CTPageMar , ale CTPageMar nie jest rozwiązany. Używam Apache POI-3,9jak ustawić marginesy strony dla dokumentu tekstowego za pomocą apache poi?

Próbowałem to

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

Zobacz ten wątek - http://apache-poi.1045710.n5.nabble.com/How-to-change-margins-of-a-word-document-td5710067.html – LittlePanda

+0

dzięki @LittlePanda kod po znaku pomógł, ale działa dla formatu doc, nie dla docx. jak ustawić marginesy podczas tworzenia dokumentu xwpf. (kod z linku opisuje ustawienia marginesów dla istniejącego dokumentu) – imdzeeshan

+0

Być może używasz XWPFDocument nstead z HWPF, prawda? – LittlePanda

Odpowiedz

3

O ile rozumiem, problem nie jest związany z dostarczonego kodu, jest to związane z brakującymi CTPageMar klasę.

Źródłem brakujących klasach problem jest jasno wyjaśnione w Apache POI FAQ:

Aby korzystać z nowych formatów plików OOXML, POI wymaga słoik zawierający plik XSD formacie [...] Można pobrać jar ręcznie z repozytorium POI Maven.

Adres URL z najczęściej zadawanych pytań nie działa, ale można znaleźć wymagany słoik pod numerem central maven repo.

+0

Należy zauważyć, że plik ooxml-schemas, który zawiera wszystko, nie jest tym samym, co plik poi-ooxml-schemas. Z najczęściej zadawanych pytań: "Pełen słoik wszystkich schematów to ooxml-schemas-1.3.jar, a obecnie wynosi około 15 mb. Mniejszy słoik o kształcie poi-ooxml-schemas ma tylko około 4mb. zazwyczaj używane części. " – jamsandwich

1

Aby rozwiązać klasę CTPageMar, musisz dodać pakiet org.apache.poi:ooxml-schema do swojej ścieżki klas. Odpowiedni JAR zawiera wszystkie schematy. Możesz znaleźć więcej informacji here.