private void SetNamespaceForNewTagsBasedOnExistingRoot() { IList <IStructureNode> rootKids = document.GetStructTreeRoot().GetKids(); if (rootKids.Count > 0) { PdfStructElem firstKid = (PdfStructElem)rootKids[0]; IRoleMappingResolver resolvedMapping = ResolveMappingToStandardOrDomainSpecificRole(firstKid.GetRole().GetValue (), firstKid.GetNamespace()); if (resolvedMapping == null || !resolvedMapping.CurrentRoleIsStandard()) { ILog logger = LogManager.GetLogger(typeof(iText.Kernel.Pdf.Tagutils.TagStructureContext)); String nsStr; if (firstKid.GetNamespace() != null) { nsStr = firstKid.GetNamespace().GetNamespaceName(); } else { nsStr = StandardNamespaces.GetDefault(); } logger.Warn(String.Format(iText.IO.LogMessageConstant.EXISTING_TAG_STRUCTURE_ROOT_IS_NOT_STANDARD, firstKid .GetRole().GetValue(), nsStr)); } if (resolvedMapping == null || !StandardNamespaces.PDF_1_7.Equals(resolvedMapping.GetNamespace().GetNamespaceName ())) { documentDefaultNamespace = FetchNamespace(StandardNamespaces.PDF_2_0); } } else { documentDefaultNamespace = FetchNamespace(StandardNamespaces.PDF_2_0); } }
/// <summary>Identifies standard structure role type based only on it's name.</summary> /// <remarks> /// Identifies standard structure role type based only on it's name. The return types might be one of the constants: /// <ul> /// <li> /// <see cref="Unknown"/> /// </li> /// <li> /// <see cref="Grouping"/> /// </li> /// <li> /// <see cref="BlockLevel"/> /// </li> /// <li> /// <see cref="InlineLevel"/> /// </li> /// <li> /// <see cref="Illustration"/> /// </li> /// </ul> /// See also remarks in the /// <see cref="AccessibleTypes"/> /// class documentation. /// </remarks> internal static int IdentifyType(String role) { if (groupingRoles.Contains(role)) { return(Grouping); } else { if (blockLevelRoles.Contains(role) || StandardNamespaces.IsHnRole(role)) { return(BlockLevel); } else { if (inlineLevelRoles.Contains(role)) { return(InlineLevel); } else { if (illustrationRoles.Contains(role)) { return(Illustration); } } } } return(Unknown); }
internal RoleMappingResolverPdf2(String role, PdfNamespace @namespace, PdfDocument document) { this.currRole = PdfStructTreeRoot.ConvertRoleToPdfName(role); this.currNamespace = @namespace; String defaultNsName = StandardNamespaces.GetDefault(); PdfDictionary defaultNsRoleMap = document.GetStructTreeRoot().GetRoleMap(); this.defaultNamespace = new PdfNamespace(defaultNsName).SetNamespaceRoleMap(defaultNsRoleMap); if (currNamespace == null) { currNamespace = defaultNamespace; } }
public virtual bool CurrentRoleShallBeMappedToStandard() { return(!CurrentRoleIsStandard() && !StandardNamespaces.IsKnownDomainSpecificNamespace(currNamespace)); }
public virtual bool CurrentRoleIsStandard() { String roleStrVal = currRole.GetValue(); bool stdRole17 = currNamespace.GetNamespaceName().Equals(StandardNamespaces.PDF_1_7) && StandardNamespaces .RoleBelongsToStandardNamespace(roleStrVal, StandardNamespaces.PDF_1_7); bool stdRole20 = currNamespace.GetNamespaceName().Equals(StandardNamespaces.PDF_2_0) && StandardNamespaces .RoleBelongsToStandardNamespace(roleStrVal, StandardNamespaces.PDF_2_0); return(stdRole17 || stdRole20); }
public virtual bool CurrentRoleIsStandard() { return(StandardNamespaces.RoleBelongsToStandardNamespace(currRole.GetValue(), StandardNamespaces.PDF_1_7)); }