Beispiel #1
0
        public void Transform(IEnumerable<Element> elements, Stream output)
        {
            Compositor compositor = new Compositor();
            var root = compositor.RootPageCollection
                .MediaBox(0, 0, (int)PageSettings.InPoints(_settings.PageWidth), (int)PageSettings.InPoints(_settings.PageHeight))
                .AddResources()
                    .AddSimpeType1Font("Courier", out _courier)
                    .AddSimpeType1Font("Courier-Bold", out _courierBold)
                    .AddSimpeType1Font("Courier-Oblique", out _courierItalic)
                    .AddSimpeType1Font("Courier-BoldOblique", out _courierBoldItalic)
                .End();

            _page = NewPage(root);

            WriteTitleElement(elements.FirstOrDefault() as TitleElement);

            foreach (var element in elements) {
                bool found = Write(element as DialogGroupElement)
                    || Write(element as ActionElement)
                    || Write(element as HeadingElement)
                    || Write(element as TransitionElement)
                    || Write(element as CenteredTextElement)
                    || Write(element as BoneyardElement)
                    || Write(element as NoteBlockElement)
                    || Write(element as SectionElement);

                if (!found)
                    Console.WriteLine("NOT FOUND: {0}", element.Type);
            }

            TextWriter w = new StreamWriter(output);
            PdfOutput pdfOutput = new PdfOutput(w);
            pdfOutput.WriteCompositor(compositor);
            w.Flush();
        }
Beispiel #2
0
        private Compositor.PageBuilder NewPage(Compositor.PageCollectionBuilder builder)
        {
            _posY = PageSettings.InPoints(_settings.PageHeight) - PageSettings.InPoints(_settings.TopMargin);

            _page = builder.AddPage()
                    .SetFont(_courier, _settings.FontSize)
                    .SetMatrix(1, 0, 0, 1, PageSettings.InPoints(_settings.LeftMargin), PageSettings.InPoints(_settings.PageHeight) - PageSettings.InPoints(_settings.TopMargin));

            _pageNumber++;

            if (_pageNumber > 1)
            {
                MoveDownInches(-_settings.PageNumberDistanceTop);
                EmptyLine();
                WriteRightAlignedLine(_pageNumber.ToString() + ".");
                MoveDown(-2);
                MoveDownInches(_settings.PageNumberDistanceTop);
            }

            return(_page);
        }
Beispiel #3
0
        public void Transform(IEnumerable <Element> elements, Stream output)
        {
            Compositor compositor = new Compositor();
            var        root       = compositor.RootPageCollection
                                    .MediaBox(0, 0, (int)PageSettings.InPoints(_settings.PageWidth), (int)PageSettings.InPoints(_settings.PageHeight))
                                    .AddResources()
                                    .AddSimpeType1Font("Courier", out _courier)
                                    .AddSimpeType1Font("Courier-Bold", out _courierBold)
                                    .AddSimpeType1Font("Courier-Oblique", out _courierItalic)
                                    .AddSimpeType1Font("Courier-BoldOblique", out _courierBoldItalic)
                                    .End();

            _page = NewPage(root);

            WriteTitleElement(elements.FirstOrDefault() as TitleElement);

            foreach (var element in elements)
            {
                bool found = Write(element as DialogGroupElement) ||
                             Write(element as ActionElement) ||
                             Write(element as HeadingElement) ||
                             Write(element as TransitionElement) ||
                             Write(element as CenteredTextElement) ||
                             Write(element as BoneyardElement) ||
                             Write(element as NoteBlockElement) ||
                             Write(element as SectionElement);

                if (!found)
                {
                    Console.WriteLine("NOT FOUND: {0}", element.Type);
                }
            }

            TextWriter w         = new StreamWriter(output);
            PdfOutput  pdfOutput = new PdfOutput(w);

            pdfOutput.WriteCompositor(compositor);
            w.Flush();
        }
Beispiel #4
0
        private Compositor.PageBuilder NewPage(Compositor.PageCollectionBuilder builder)
        {
            _posY = PageSettings.InPoints(_settings.PageHeight) - PageSettings.InPoints(_settings.TopMargin);

            _page = builder.AddPage()
                .SetFont(_courier, _settings.FontSize)
                .SetMatrix(1, 0, 0, 1, PageSettings.InPoints(_settings.LeftMargin), PageSettings.InPoints(_settings.PageHeight) - PageSettings.InPoints(_settings.TopMargin));

            _pageNumber++;

            if (_pageNumber > 1) {
                MoveDownInches(-_settings.PageNumberDistanceTop);
                EmptyLine();
                WriteRightAlignedLine(_pageNumber.ToString() + ".");
                MoveDown(-2);
                MoveDownInches(_settings.PageNumberDistanceTop);
            }

            return _page;
        }