Ejemplo n.º 1
0
        /// <summary>
        /// Renders the specified jupyter object (returns the <see cref="TextRendererBase.Writer"/> as a render object).
        /// </summary>
        /// <param name="jupyterObject">The jupyter object.</param>
        /// <returns></returns>
        public override object Render(IJupyterObject jupyterObject)
        {
            if (jupyterObject is JupyterDocument jupyterDocument)
            {
                if (RendererHeaderAndFooter)
                {
                    //Head
                    WriteHeaderStart();
                    WriteCssPart();
                    WriteHeaderEnd();

                    //Body(Start)
                    WriteHtmlBodyStart();
                }

                //Cells
                foreach (var cell in jupyterDocument.Cells)
                {
                    base.Render(cell);
                }

                if (RendererHeaderAndFooter)
                {
                    //Body(End)
                    WriteHtmlBodyEnd();
                }
            }
            else
            {
                base.Render(jupyterObject);
            }

            //return writer
            return(Writer);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Renders the specified jupyter object (returns the <see cref="TextRendererBase.Writer"/> as a render object).
        /// </summary>
        /// <param name="jupyterObject">The jupyter object.</param>
        /// <returns></returns>
        public override object Render(IJupyterObject jupyterObject)
        {
            //Instead of using IJupyterObjectRenderer, just using JsonConvert instead
            var result = JsonConvert.SerializeObject(jupyterObject);

            //write to string
            Write(result);

            //return writer
            return(Writer);
        }
        public virtual void Write(RendererBase renderer, IJupyterObject obj)
        {
            var htmlRenderer = (TRenderer)renderer;
            var typedObj     = (TObject)obj;

            // Try processing
            for (var i = 0; i < TryWriters.Count; i++)
            {
                var tryWriter = TryWriters[i];
                if (tryWriter(htmlRenderer, typedObj))
                {
                    return;
                }
            }

            Write(htmlRenderer, typedObj);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Renders the specified jupyter object (returns the <see cref="TextRendererBase.Writer"/> as a render object).
        /// </summary>
        /// <param name="jupyterObject">The jupyter object.</param>
        /// <returns></returns>
        public override object Render(IJupyterObject jupyterObject)
        {
            //using HtmlRenderer to renderer Html file
            var writer   = new StringWriter();
            var renderer = new HtmlRenderer(writer)
            {
                RendererHeaderAndFooter = true
            };

            renderer.Render(jupyterObject);
            writer.Flush();
            var htmlString = writer.ToString();

            //Conver to pdf
            var convertor = _htmlToPdf ?? CreateDefauleHtmlToPdf();

            var pdfFile = convertor.ConvertHtmlString(htmlString);

            //save
            pdfFile.Save(_stream);

            //return stream
            return(_stream);
        }
Ejemplo n.º 5
0
 public abstract object Render(IJupyterObject jupyterObject);
 public virtual bool Accept(RendererBase renderer, IJupyterObject obj)
 {
     return(obj is TObject);
 }