A NullPointerException
не может быть вызвано отсутствующими библиотеками.NPE
возникает, если объект указывает на NULL
, но код пытается каким-то образом использовать этот объект.
В вашем случае, если sectPr.getPgSz()
выдает NPE
, тогда sectPr
равно null
и т. Д. null.getPgSz()
бросков NPE
.
Почему sectPr
равно null
?Это потому, что document.getDocument().getBody().getSectPr()
вернул null
.И этого следовало ожидать, поскольку для вновь созданного XWPFDocument
с использованием XWPFDocument document = new XWPFDocument();
не заданы никакие свойства раздела.Он полагается на настройки по умолчанию для приложения обработки текста, когда дело доходит до настроек раздела и / или страницы.
Очевидно, что вам всегда нужно проверять, есть ли уже CTSectPr
в документе.И вы можете использовать их, только если они уже есть.В противном случае они должны быть созданы с использованием addNewSectPr
.
Похоже, что вы хотите получить настройки страницы, чтобы установить ширину таблицы на effectivePageWidth
.Но поскольку для вновь созданного XWPFDocument
не заданы какие-либо свойства раздела, вам нужно сначала установить их сначала, вместо этого пытаясь получить то, чего не существует.
См. Примеры кода, в котором я использовал CTSectPr
: https://stackoverflow.com/search?q=user%3A3915431+CTSectPr+