diff --git a/itext/itext.kernel/itext/kernel/pdf/tagutils/TagStructureContext.cs b/itext/itext.kernel/itext/kernel/pdf/tagutils/TagStructureContext.cs index 6e6054fa35..6a34989539 100644 --- a/itext/itext.kernel/itext/kernel/pdf/tagutils/TagStructureContext.cs +++ b/itext/itext.kernel/itext/kernel/pdf/tagutils/TagStructureContext.cs @@ -49,6 +49,7 @@ source product. using iText.Kernel.Pdf; using iText.Kernel.Pdf.Annot; using iText.Kernel.Pdf.Tagging; +using System.Linq; namespace iText.Kernel.Pdf.Tagutils { /// @@ -592,8 +593,8 @@ public virtual void NormalizeDocumentRootTag() { IList rootKids = document.GetStructTreeRoot().GetKids(); IRoleMappingResolver mapping = null; if (rootKids.Count > 0) { - PdfStructElem firstKid = (PdfStructElem)rootKids[0]; - mapping = ResolveMappingToStandardOrDomainSpecificRole(firstKid.GetRole().GetValue(), firstKid.GetNamespace + PdfStructElem firstKid = (PdfStructElem)rootKids.Where(r => r.GetRole() != null).FirstOrDefault(); + mapping = ResolveMappingToStandardOrDomainSpecificRole(firstKid.GetRole()?.GetValue(), firstKid.GetNamespace ()); } if (rootKids.Count == 1 && mapping != null && mapping.CurrentRoleIsStandard() && IsRoleAllowedToBeRoot(mapping