Пример #1
0
        /// <inheritdoc/>
        public override void Run(object item)
        {
            var editor = ServiceProvider.GetService <ProjectEditor>();
            var page   = editor.Project?.CurrentContainer;

            if (page != null)
            {
                if (editor.Renderers[0]?.State?.SelectedShape != null)
                {
                    var shapes = Enumerable.Repeat(editor.Renderers[0].State.SelectedShape, 1).ToList();
                    EmfWriter.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        page.Data.Properties,
                        page.Data.Record,
                        editor.Project);
                }
                else if (editor.Renderers?[0]?.State?.SelectedShapes != null)
                {
                    var shapes = editor.Renderers[0].State.SelectedShapes.ToList();
                    EmfWriter.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        page.Data.Properties,
                        page.Data.Record,
                        editor.Project);
                }
                else
                {
                    EmfWriter.SetClipboard(page, editor.Project);
                }
            }
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        private void ExportAsEmf(string path)
        {
            var context = DataContext as EditorContext;

            if (context == null)
            {
                return;
            }

            try
            {
                var writer = new EmfWriter();
                writer.Save(
                    path,
                    context.Editor.Project.CurrentContainer,
                    context.Editor.Project);
            }
            catch (Exception ex)
            {
                if (context.Editor.Log != null)
                {
                    context.Editor.Log.LogError("{0}{1}{2}",
                                                ex.Message,
                                                Environment.NewLine,
                                                ex.StackTrace);
                }
            }
        }
Пример #3
0
 private void SetClipboard(IEnumerable <IBaseShape> shapes, double width, double height, IImageCache ic)
 {
     using (var bitmap = new Bitmap((int)width, (int)height))
     {
         var writer = new EmfWriter(_serviceProvider);
         using (var ms = writer.MakeMetafileStream(bitmap, shapes, ic))
         {
             SetClipboard(ms);
         }
     }
 }
Пример #4
0
        private void SetClipboard(IPageContainer container, IImageCache ic)
        {
            var writer = new EmfWriter(_serviceProvider);

            using (var bitmap = new Bitmap((int)container.Template.Width, (int)container.Template.Height))
            {
                using (var ms = writer.MakeMetafileStream(bitmap, container, ic))
                {
                    SetClipboard(ms);
                }
            }
        }
Пример #5
0
        /// <inheritdoc/>
        async Task IEditorApplication.OnExportAsEmfAsync(string path)
        {
            try
            {
                var page = _editor?.Project?.CurrentContainer;
                if (page != null)
                {
                    EmfWriter.Save(path, page, _editor.Project as IImageCache);
                }
            }
            catch (Exception ex)
            {
                _log?.LogError($"{ex.Message}{Environment.NewLine}{ex.StackTrace}");
            }

            await Task.Delay(0);
        }
Пример #6
0
        /// <inheritdoc/>
        public void OnCopyAsEmf(object item)
        {
            var editor = _serviceProvider.GetService <ProjectEditor>();
            var page   = editor.Project?.CurrentContainer;

            var dataFlow = _serviceProvider.GetService <IDataFlow>();
            var db       = (object)page.Data.Properties;
            var record   = (object)page.Data.Record;

            dataFlow.Bind(page.Template, db, record);
            dataFlow.Bind(page, db, record);

            if (page != null && editor.Project is IImageCache imageChache)
            {
                if (editor.Renderers[0]?.State?.SelectedShape != null)
                {
                    var shapes = Enumerable.Repeat(editor.Renderers[0].State.SelectedShape, 1).ToList();
                    var writer = new EmfWriter(_serviceProvider);
                    writer.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        imageChache);
                }
                else if (editor.Renderers?[0]?.State?.SelectedShapes != null)
                {
                    var shapes = editor.Renderers[0].State.SelectedShapes.ToList();
                    var writer = new EmfWriter(_serviceProvider);
                    writer.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        imageChache);
                }
                else
                {
                    var writer = new EmfWriter(_serviceProvider);
                    writer.SetClipboard(page, imageChache);
                }
            }
        }
        /// <inheritdoc/>
        public void OnCopyAsEmf(object item)
        {
#if NET461 && _WINDOWS
            var editor = _serviceProvider.GetService <ProjectEditor>();
            var page   = editor.Project?.CurrentContainer;
            if (page != null)
            {
                if (editor.Renderers[0]?.State?.SelectedShape != null)
                {
                    var shapes = Enumerable.Repeat(editor.Renderers[0].State.SelectedShape, 1).ToList();
                    var writer = new EmfWriter(_serviceProvider);
                    writer.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        page.Data.Properties,
                        page.Data.Record,
                        editor.Project as IImageCache);
                }
                else if (editor.Renderers?[0]?.State?.SelectedShapes != null)
                {
                    var shapes = editor.Renderers[0].State.SelectedShapes.ToList();
                    var writer = new EmfWriter(_serviceProvider);
                    writer.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        page.Data.Properties,
                        page.Data.Record,
                        editor.Project as IImageCache);
                }
                else
                {
                    var writer = new EmfWriter(_serviceProvider);
                    writer.SetClipboard(page, editor.Project as IImageCache);
                }
            }
#else
            throw new NotImplementedException("Not implemented for this platform.");
#endif
        }
Пример #8
0
        /// <inheritdoc/>
        async Task IEditorApplication.OnCopyAsEmfAsync()
        {
            var page = _editor?.Project?.CurrentContainer;

            if (page != null)
            {
                if (_editor?.Renderers[0]?.State?.SelectedShape != null)
                {
                    var shapes = Enumerable.Repeat(_editor.Renderers[0].State.SelectedShape, 1).ToList();
                    EmfWriter.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        page.Data.Properties,
                        page.Data.Record,
                        _editor.Project);
                }
                else if (_editor?.Renderers?[0]?.State?.SelectedShapes != null)
                {
                    var shapes = _editor.Renderers[0].State.SelectedShapes.ToList();
                    EmfWriter.SetClipboard(
                        shapes,
                        page.Template.Width,
                        page.Template.Height,
                        page.Data.Properties,
                        page.Data.Record,
                        _editor.Project);
                }
                else
                {
                    EmfWriter.SetClipboard(page, _editor.Project);
                }
            }

            await Task.Delay(0);
        }