Я использую Apache POI XWPF для создания и обработки документов MS Word
. Но я не нашел в документации, как изменить ориентацию страницы.Как установить ориентацию страницы для документа Word?
Видимо этот путь должен сделать это:
XWPFDocument doc = new XWPFDocument();
CTDocument1 document = doc.getDocument();
CTBody body = document.getBody();
if (!body.isSetSectPr()) {
body.addNewSectPr();
}
CTSectPr section = body.getSectPr();
if(!section.isSetPgSz()) {
section.addNewPgSz();
}
CTPageSz pageSize = section.getPgSz();
pageSize.setOrient(STPageOrientation.LANDSCAPE);
Но этот метод не работает должным образом. Я могу настроить ориентацию страницы на альбомную, и когда я прочитаю ориентацию страницы в коде, я получаю пейзаж. Отлично. Но если я открою сохраненный документ, у меня есть портретный формат. Этот параметр не работает. В чем может быть проблема?
В качестве обходного пути я вынужден начать работу с чистого документа, созданного вручную в альбомном или портретном формате. Но я хочу создавать документы программно с нуля в нужной ориентации.
Например, POI HSSF and XSSF имеют функциональность для переключения между пейзажным и портретным режимами. Это setLandscape() метод org.apache.poi.ss.usermodel.PrintSetup
интерфейс.
Но как насчет XWPF
или HWPF
?
Вы попробуйте прочитать [Apache POI FAQ о том, что делать, когда Класс CTsomething отсутствует в java-методе poi-ooxml-схем] (http://poi.apache.org/faq.html#faq-N10025)? – Gagravarr
@Gagravarr Спасибо за ваше замечание. Но это не решает мою проблему. Я добавил правильные версии всех необходимых банок. И я не получаю никаких исключений, все компилируется и запускается. Но тема по-прежнему актуальна. ** Как правильно изменить ориентацию документа? ** Приведенный выше код не работает должным образом. Я установил ориентацию страницы в альбомном порядке, но я продолжаю видеть портретный формат при открытии документа. – kapand
Если вы установили документ в «Пейзаж» в слове, сохраните его как .docx, затем распакуйте полученный файл (.docx - это zip из xml-файлов), где действительно устанавливается ориентация? – Gagravarr