Пример #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="path"></param>
 /// <param name="container"></param>
 public void Save(string path, Core2D.Container container)
 {
     using (var pdf = new PdfDocument())
     {
         Add(pdf, container);
         pdf.Save(path);
     }
 }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <param name="container"></param>
        public void Save(string path, Core2D.Container container)
        {
            _outputPath = System.IO.Path.GetDirectoryName(path);
            var doc = new DxfDocument(DxfVersion.AutoCad2010);

            Add(doc, container);
            doc.Save(path);
            ClearCache(isZooming: false);
        }
Пример #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="gfx"></param>
 /// <param name="container"></param>
 /// <param name="db"></param>
 /// <param name="r"></param>
 public void Draw(object gfx, Core2D.Container container, ImmutableArray <Core2D.ShapeProperty> db, Core2D.Record r)
 {
     foreach (var layer in container.Layers)
     {
         if (layer.IsVisible)
         {
             Draw(gfx, layer, db, r);
         }
     }
 }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="container"></param>
        private void Add(DxfDocument doc, Core2D.Container container)
        {
            _pageWidth  = container.Width;
            _pageHeight = container.Height;

            if (container.Template != null)
            {
                Draw(doc, container.Template, container.Properties, null);
            }

            Draw(doc, container, container.Properties, null);
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="container"></param>
        /// <param name="db"></param>
        /// <param name="r"></param>
        public void Draw(object doc, Core2D.Container container, ImmutableArray <Core2D.ShapeProperty> db, Core2D.Record r)
        {
            var _doc = doc as DxfDocument;

            foreach (var layer in container.Layers)
            {
                var dxfLayer = new Layer(layer.Name)
                {
                    IsVisible = layer.IsVisible
                };

                _doc.Layers.Add(dxfLayer);

                _currentLayer = dxfLayer;

                Draw(doc, layer, db, r);
            }
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pdf"></param>
        /// <param name="container"></param>
        /// <returns></returns>
        private PdfPage Add(PdfDocument pdf, Core2D.Container container)
        {
            // create A4 page with landscape orientation
            PdfPage page = pdf.AddPage();

            page.Size        = PageSize.A3;
            page.Orientation = PageOrientation.Landscape;

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

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

                // draw container template contents to pdf graphics
                if (container.Template != null)
                {
                    if (container.Template.Background.A > 0)
                    {
                        DrawBackgroundInternal(
                            gfx,
                            container.Template.Background,
                            Core2D.Rect2.Create(0, 0, page.Width.Value / scale, page.Height.Value / scale));
                    }
                    Draw(gfx, container.Template, container.Properties, null);
                }

                // draw container contents to pdf graphics
                if (container.Background.A > 0)
                {
                    DrawBackgroundInternal(
                        gfx,
                        container.Background,
                        Core2D.Rect2.Create(0, 0, page.Width.Value / scale, page.Height.Value / scale));
                }
                Draw(gfx, container, container.Properties, null);
            }

            return(page);
        }