/// <summary>
 /// Creates new
 /// <see cref="SvgProcessorResult"/>
 /// entity.
 /// </summary>
 /// <param name="namedObjects">
 /// a map of named-objects with their id's as
 /// <see cref="System.String"/>
 /// keys and
 /// the
 /// <see cref="iText.Svg.Renderers.ISvgNodeRenderer"/>
 /// objects as values.
 /// </param>
 /// <param name="root">
 /// a wrapped
 /// <see cref="iText.Svg.Renderers.ISvgNodeRenderer"/>
 /// root renderer.
 /// </param>
 /// <param name="context">
 /// a
 /// <see cref="SvgProcessorContext"/>
 /// instance.
 /// </param>
 public SvgProcessorResult(IDictionary <String, ISvgNodeRenderer> namedObjects, ISvgNodeRenderer root, SvgProcessorContext
                           context)
 {
     this.namedObjects = namedObjects;
     this.root         = root;
     this.fontProvider = context.GetFontProvider();
     this.tempFonts    = context.GetTempFonts();
     this.context      = context;
 }
Exemplo n.º 2
0
        /// <exception cref="iText.Svg.Exceptions.SvgProcessingException"/>
        public virtual ISvgProcessorResult Process(INode root, ISvgConverterProperties converterProps)
        {
            if (root == null)
            {
                throw new SvgProcessingException(SvgLogMessageConstant.INODEROOTISNULL);
            }
            if (converterProps == null)
            {
                converterProps = new SvgConverterProperties();
            }
            //Setup processorState
            PerformSetup(root, converterProps);
            //Find root
            IElementNode svgRoot = FindFirstElement(root, SvgConstants.Tags.SVG);

            if (svgRoot != null)
            {
                //Iterate over children
                ExecuteDepthFirstTraversal(svgRoot);
                ISvgNodeRenderer rootSvgRenderer = CreateResultAndClean();
                return(new SvgProcessorResult(namedObjects, rootSvgRenderer, context.GetFontProvider(), context.GetTempFonts
                                                  ()));
            }
            else
            {
                throw new SvgProcessingException(SvgLogMessageConstant.NOROOT);
            }
        }