Exemple #1
0
        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);
            }
        }
Exemple #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));
 }