Esempio n. 1
0
        private void Add(PdfDocument pdfDocument, Core.IPage page)
        {
            // create A4 page with landscape orientation
            PdfPage pdfPage = pdfDocument.AddPage();

            pdfPage.Size        = PageSize.A4;
            pdfPage.Orientation = PageOrientation.Landscape;

            using (XGraphics gfx = XGraphics.FromPdfPage(pdfPage))
            {
                // calculate x and y page scale factors
                double scaleX = pdfPage.Width.Value / page.Template.Width;
                double scaleY = pdfPage.Height.Value / page.Template.Height;
                double scale  = Math.Min(scaleX, scaleY);

                // set scaling function
                ScaleToPage = (value) => value * scale;

                // set renderer database
                Database = page.Database;

                // draw block contents to pdf graphics
                RenderPage(gfx, page);

                // reset renderer database
                Database = null;
            }
        }
Esempio n. 2
0
 public void Create(string path, Core.IPage page)
 {
     using (var pdfDocument = new PdfDocument())
     {
         Add(pdfDocument, page);
         pdfDocument.Save(path);
     }
 }
Esempio n. 3
0
        private void RenderPage(object gfx, Core.IPage page)
        {
            RenderTemplate(gfx, page.Template);

            RenderLayer(gfx, page.Shapes);
            RenderLayer(gfx, page.Blocks);

            if (EnablePinRendering)
            {
                RenderLayer(gfx, page.Pins);
            }

            RenderLayer(gfx, page.Wires);
        }