Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PPTXRenderer"/> class.
        /// </summary>
        /// <param name="writer">The writer.</param>
        /// <param name="options">The PPTX options</param>
        public PPTXRenderer(SlideManager Writer, PPTXSetting options = null)
        {
            this.Writer = Writer;

            Options = options ?? new PPTXSetting();
            // Default block renderers
            ObjectRenderers.Add(new CodeBlockRenderer());
            ObjectRenderers.Add(new ListRenderer());
            ObjectRenderers.Add(new HeadingRenderer());
            ObjectRenderers.Add(new HtmlBlockRenderer());
            ObjectRenderers.Add(new ParagraphRenderer());
            ObjectRenderers.Add(new QuoteBlockRenderer());
            ObjectRenderers.Add(new ThematicBreakRenderer());
            ObjectRenderers.Add(new LinkReferenceDefinitionGroupRenderer());
            ObjectRenderers.Add(new LinkReferenceDefinitionRenderer());
            ObjectRenderers.Add(new TableRenderer());

            // Default inline renderers
            ObjectRenderers.Add(new AutolinkInlineRenderer());
            ObjectRenderers.Add(new CodeInlineRenderer());
            ObjectRenderers.Add(new DelimiterInlineRenderer());
            ObjectRenderers.Add(new EmphasisInlineRenderer());
            ObjectRenderers.Add(new LineBreakInlineRenderer());
            ObjectRenderers.Add(new PPTXHtmlInlineRenderer());
            ObjectRenderers.Add(new PPTXHtmlEntityInlineRenderer());
            ObjectRenderers.Add(new LinkInlineRenderer());
            ObjectRenderers.Add(new LiteralInlineRenderer());
        }
Ejemplo n.º 2
0
        protected static PPTXDocument ToPPTxDocument(string markdown, PPTXSetting options = null, MarkdownPipeline pipeline = null)
        {
            options = options ?? new PPTXSetting()
            {
                SlideSize = EPPTXSlideSizeValues.Screen4x3
            };

            pipeline = pipeline ?? new MarkdownPipelineBuilder()
                       .UsePipeTables()
                       .UseEmphasisExtras()
                       .Build();

            var document = Markdig.Markdown.Parse(markdown, pipeline);

            var pptx = new PPTXDocument();

            var slide = new SlideManager(pptx, options);

            var renderer = new PPTXRenderer(slide, options);

            pipeline.Setup(renderer);

            renderer.Render(document);

            slide.EndSheet();

            return(pptx);
        }
Ejemplo n.º 3
0
        public SlideManager(PPTXDocument document, PPTXSetting Settings)
        {
            this.document = document;
            this.Settings = Settings;

            CreateNewSlide();
        }
Ejemplo n.º 4
0
        protected static void ToPPTX(string markdown, string pptxFilePath, PPTXSetting options = null, MarkdownPipeline pipeline = null)
        {
            options = options ?? new PPTXSetting()
            {
                SlideSize = EPPTXSlideSizeValues.Screen4x3
            };

            var pptx = ToPPTxDocument(markdown, options, pipeline);

            pptx.SaveAs(pptxFilePath, options);
        }
Ejemplo n.º 5
0
        public static void CreatePresentationPart(PresentationPart part, PPTXSetting FileSettings, PPTXSlideLayoutGroup SlideLayouts)
        {
            var partCreator = new DefaultPresentationPart();

            partCreator._CreatePresentationPart(part);

            SlidePart slidePart1 = DefaultSlidePart.CreateSlidePart(part, "rId2", FileSettings);

            // 1枚目のスライド追加
            var topLayoutPart = new SlideLayout_TitleSlide();

            topLayoutPart.Init(EPPTXSlideLayoutType.TitleSlide, SlideLayouts);
            SlideLayoutPart slideLayoutPart1 = topLayoutPart.CreateSlideLayoutPart(slidePart1);
            SlideMasterPart slideMasterPart1 = DefaultSlideMasterPart.CreateSlideMasterPart(slideLayoutPart1, "rId1");
            ThemePart       themePart1       = DefaultTheme.CreateTheme(slideMasterPart1);

            slideMasterPart1.AddPart(slideLayoutPart1, "rId1");
            part.AddPart(slideMasterPart1, "rId1");
            part.AddPart(themePart1, "rId5");

            // 残りのスライドレイアウトを追加
            foreach (EPPTXSlideLayoutType layoutType in Enum.GetValues(typeof(EPPTXSlideLayoutType)))
            {
                if (layoutType == EPPTXSlideLayoutType.TitleSlide)
                {
                    continue;
                }

                var otherLayoutPartType = Type.GetType($"MDToPPTX.PPTX.DefaultParts.SlideLayouts.SlideLayout_{layoutType.ToString()}");
                if (otherLayoutPartType == null)
                {
                    continue;
                }
                SlideLayoutPartBase otherLayoutPart = Activator.CreateInstance(otherLayoutPartType) as SlideLayoutPartBase;
                if (otherLayoutPart != null)
                {
                    otherLayoutPart.Init(layoutType, SlideLayouts);
                    SlideLayoutPart otherSlideLayoutPart = otherLayoutPart.CreateSlideLayoutPart(slideMasterPart1);

                    otherSlideLayoutPart.AddPart(slideMasterPart1, "rId1");
                }
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                return;
            }

            string filepath    = args[0];
            string title       = args.Length > 1 ? args[1] : "";
            string subTitle    = args.Length > 2 ? args[2] : "";
            string settingPath = args.Length > 3 ? args[3] : "";

            PPTXSetting setting = null;

            if (string.IsNullOrWhiteSpace(settingPath) == false)
            {
                if (System.IO.File.Exists(settingPath))
                {
                    setting = PPTXSetting.Load(settingPath);
                }
            }

            setting = setting ?? new PPTXSetting()
            {
                SlideSize = EPPTXSlideSizeValues.Screen4x3,
                Title     = title,
                SubTitle  = subTitle
            };

            MD2PPTX.RunFromMDFile(filepath, null, setting);

            if (string.IsNullOrWhiteSpace(settingPath) == false)
            {
                setting.Save(settingPath);
            }
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Convert Markdown text
 /// </summary>
 /// <param name="MarkdownText">Markdown text</param>
 /// <param name="ExportPath">pptx file path</param>
 /// <param name="options">Option setting</param>
 public static PPTXDocument MakePPtxDocumentFromMDText(string MarkdownText, PPTXSetting options = null) => ToPPTxDocument(MarkdownText, options);
Ejemplo n.º 8
0
        /// <summary>
        /// Make pptx document
        /// </summary>
        /// <param name="MarkdownFilePath"></param>
        /// <param name="options"></param>
        public static PPTXDocument MakePPtxDocumentFromMDFile(string MarkdownFilePath, PPTXSetting options = null)
        {
            var markdownText = "";

            using (StreamReader sr = new StreamReader(MarkdownFilePath))
            {
                markdownText = sr.ReadToEnd();
            }

            return(MakePPtxDocumentFromMDText(markdownText, options));
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Convert Markdown text
 /// </summary>
 /// <param name="MarkdownText">Markdown text</param>
 /// <param name="ExportPath">pptx file path</param>
 /// <param name="options">Option setting</param>
 public static void RunFromMDText(string MarkdownText, string ExportPath, PPTXSetting options = null) => ToPPTX(MarkdownText, ExportPath, options);
Ejemplo n.º 10
0
        /// <summary>
        /// Convert Markdown text
        /// </summary>
        /// <param name="MarkdownFilePath"></param>
        /// <param name="options"></param>
        public static void RunFromMDFile(string MarkdownFilePath, string ExportPath = null, PPTXSetting options = null)
        {
            var markdownText = "";

            using (StreamReader sr = new StreamReader(MarkdownFilePath))
            {
                markdownText = sr.ReadToEnd();
            }

            RunFromMDText(markdownText, ExportPath ?? MarkdownFilePath.ToLower().Replace(".md", ".pptx"), options);
        }
Ejemplo n.º 11
0
        public static SlidePart CreateSlidePart(PresentationPart presentationPart, string SlideID, PPTXSetting FileSettings)
        {
            SlidePart slidePart1 = presentationPart.AddNewPart <SlidePart>(SlideID);

            GenerateSlidePart1Content(slidePart1, FileSettings.Title, FileSettings.SubTitle);

            return(slidePart1);
        }
Ejemplo n.º 12
0
        public static PresentationDocument CreatePresentationDocument(string FilePath, PPTXSetting FileSettings, PPTXSlideLayoutGroup SlideLayouts)
        {
            var presentationDoc = PresentationDocument.Create(FilePath, PresentationDocumentType.Presentation);
            PresentationPart presentationPart = presentationDoc.AddPresentationPart();

            presentationPart.Presentation = new Presentation();

            DefaultPresentationPart.CreatePresentationPart(presentationPart, FileSettings, SlideLayouts);

            return(presentationDoc);
        }