Ejemplo n.º 1
0
        static string CreateDrawing()
        {
            var dwgSpecs = new DwgSpecs
            {
                AdditionalStamping1 = "STAMP ABC",
                AdditionalStamping2 = "STAMP 123",
                SerialNumber = "SN 12345678",
                CustomerSymbol = "ALPHA"
            };

            var dwgTemplate = new DwgTemplate(dwgSpecs);

            var rendererArguments = new ImageRendererArguments
            {
                UiContainer = dwgTemplate,
                Width = 440,
                Height = 440,
                Dpi = 300
            };

            var renderer = new ImageRenderer();
            string fileName;
            renderer.RenderAndSave(rendererArguments, out fileName);
            return fileName;
        }
        public void RenderAndSave(ImageRendererArguments args, out string fileName)
        {
            var mainContainer = new Grid();

            mainContainer.Children.Add(args.UiContainer);
            mainContainer.Measure(new Size(args.Width, args.Height));
            mainContainer.Arrange(new Rect(0, 0, args.Width, args.Height));
            mainContainer.UpdateLayout();

            var encoder = new PngBitmapEncoder();
            var render = RenderBitmap(mainContainer, args.Dpi);

            var workingDirectory = @"c:\temp";
            fileName = Path.Combine(workingDirectory, $"dwg_{Guid.NewGuid()}.png");

            render.Render(mainContainer);
            encoder.Frames.Add(BitmapFrame.Create(render));
            using (var s = File.Open(fileName, FileMode.Create))
            {
                encoder.Save(s);
            }
        }