2013-02-23 6 views
0

J'ai créé un nouveau fichier de document à l'aide de la méthode WordprocessingMLPackage.createPackage(). Maintenant j'essaie de manipuler le contenu du style par défaut ("Titre 1", "Normal", etc.). Lorsque j'essaie d'imprimer les valeurs de la propriété du style, elle renvoie NullPointerException. Je suis sûr que les styles sont là parce que les noms peuvent être imprimés. mais quand j'essaie d'accéder à ses propriétés de paragraphe, c'est null.DOCX4J: Exception de pointeur nul

Alors maintenant, je me demande si je n'accède pas correctement au contenu.

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(); 
     } 
    } 

Répondre

0

Un style peut être un style de paragraphe, de caractère, de tableau ou de liste.

Un style de caractère ne comportera pas de composant PPr. Vous devez donc effectuer une dérivation sur un type de style ou tester si getPPr renvoie une valeur nulle.

Si PPr n'est pas nul, getInd() peut renvoyer une valeur nulle, donc vous devez également y rechercher null.

Je vous suggère de sauvegarder votre docx, de le décompresser, et de regarder styles.xml pour avoir une meilleure idée de ce qui est là.