2013-02-23 1 views
0

Я создал новый файл документа, используя метод WordprocessingMLPackage.createPackage(). Теперь я пытаюсь манипулировать содержимым стиля по умолчанию («Заголовок 1», «Обычный» и т. Д.). Когда я пытаюсь распечатать значения свойства стиля, он возвращает исключение NullPointerException. Я уверен, что стили есть, потому что имена могут быть распечатаны. но когда я пытаюсь получить доступ к его свойствам абзаца, он равен нулю.docx4j: Исключение нулевого указателя

Так что теперь мне интересно, если я не доступ к содержимому правильно.

private static void createStyleFile() throws InvalidFormatException 
    { 
     WordprocessingMLPackage doc = WordprocessingMLPackage.createPackage(); 
     List<Style> styleList = doc.getMainDocumentPart().getStyleDefinitionsPart().getJaxbElement().getStyle(); 

     for(int x = 0; x < styleList.size(); x++) 
     { 
      Style curStyle = styleList.get(x); 
      //C.out(curStyle.getStyleId()); 
      C.out(curStyle.getName().getVal()); 
      curStyle.getPPr().getInd().getFirstLine().intValue(); 
     } 
    } 

ответ

0

Стиль может быть стилем абзаца, символа, таблицы или списка.

Стиль символов не будет иметь компонент PPR, поэтому вы должны расшириться по типу стиля, или проверить, возвращает ли getPPr нуль.

Если PPr не равно нулю, getInd() может вернуть нуль, так что вы должны проверить на нуль там.

Я предлагаю вам сохранить DOCX, распаковать его, и посмотреть на styles.xml для лучшей идеи, что есть.

 Смежные вопросы

  • Нет связанных вопросов^_^