@@ -790,35 +790,38 @@ internal FF.Paragraph LoadParagraph(WP.Paragraph wpPara, int id)
790790
791791 if ( ffP . Style == "ListParagraph" )
792792 {
793- if ( _numberingPart != null )
793+ if ( isNumbered ( paraProps ) )
794794 {
795- if ( paraProps . NumberingProperties . NumberingId . Val != null &&
796- paraProps . NumberingProperties . NumberingLevelReference . Val != null )
795+ if ( _numberingPart != null )
797796 {
798- ffP . NumberingId = paraProps . NumberingProperties . NumberingId . Val ;
799- ffP . NumberingLevel = paraProps . NumberingProperties . NumberingLevelReference . Val + 1 ;
800-
801- var numbering = _numberingPart . Numbering ;
802- var abstractNum = numbering . Elements < WP . AbstractNum > ( ) . FirstOrDefault ( an => an . AbstractNumberId == ffP . NumberingId ) ;
803- if ( abstractNum != null )
797+ if ( paraProps . NumberingProperties . NumberingId . Val != null &&
798+ paraProps . NumberingProperties . NumberingLevelReference . Val != null )
804799 {
805- var level = abstractNum . Elements < WP . Level > ( ) . FirstOrDefault ( l => l . LevelIndex == ffP . NumberingLevel - 1 ) ;
806- if ( level != null )
800+ ffP . NumberingId = paraProps . NumberingProperties . NumberingId . Val ;
801+ ffP . NumberingLevel = paraProps . NumberingProperties . NumberingLevelReference . Val + 1 ;
802+
803+ var numbering = _numberingPart . Numbering ;
804+ var abstractNum = numbering . Elements < WP . AbstractNum > ( ) . FirstOrDefault ( an => an . AbstractNumberId == ffP . NumberingId ) ;
805+ if ( abstractNum != null )
807806 {
808- if ( level . NumberingFormat . Val == WP . NumberFormatValues . Decimal )
809- ffP . IsNumbered = true ;
810- else if ( level . NumberingFormat . Val == WP . NumberFormatValues . LowerLetter )
811- ffP . IsAlphabeticNumber = true ;
812- else if ( level . NumberingFormat . Val == WP . NumberFormatValues . LowerRoman )
813- ffP . IsRoman = true ;
814- else if ( level . NumberingFormat . Val == WP . NumberFormatValues . Bullet )
815- ffP . IsBullet = true ;
816- else
817- ffP . IsNumbered = true ;
807+ var level = abstractNum . Elements < WP . Level > ( ) . FirstOrDefault ( l => l . LevelIndex == ffP . NumberingLevel - 1 ) ;
808+ if ( level != null )
809+ {
810+ if ( level . NumberingFormat . Val == WP . NumberFormatValues . Decimal )
811+ ffP . IsNumbered = true ;
812+ else if ( level . NumberingFormat . Val == WP . NumberFormatValues . LowerLetter )
813+ ffP . IsAlphabeticNumber = true ;
814+ else if ( level . NumberingFormat . Val == WP . NumberFormatValues . LowerRoman )
815+ ffP . IsRoman = true ;
816+ else if ( level . NumberingFormat . Val == WP . NumberFormatValues . Bullet )
817+ ffP . IsBullet = true ;
818+ else
819+ ffP . IsNumbered = true ;
820+ }
818821 }
819822 }
820- }
821823
824+ }
822825 }
823826 }
824827
@@ -959,6 +962,21 @@ private bool isIndented(WP.ParagraphProperties prop)
959962 }
960963 }
961964
965+ private bool isNumbered ( WP . ParagraphProperties prop )
966+ {
967+ try
968+ {
969+ var numbering = prop . NumberingProperties ;
970+ var numberingId = numbering . NumberingId . Val ;
971+ var numberingRef = numbering . NumberingLevelReference . Val ;
972+ return true ;
973+ }
974+ catch ( Exception ex )
975+ {
976+ return false ;
977+ }
978+ }
979+
962980 #endregion
963981
964982 #region Load OpenXML Image
0 commit comments