Exemple #1
0
        ///<summary>МЕТОД Создаем объект для печати</summary>
        /// <param name="pMyDocumentViewer">Просмоторщик печати</param>
        /// <param name="pFlowDocument">Поток с нашим текстом</param>
        /// <param name="pPrintNow">Печатаем сразу</param>

        public override bool MET_CreatePrint(MyDocumentViewer pMyDocumentViewer, FlowDocument pFlowDocument, bool pPrintNow = false)
        {
            // Сбрасываем фон
            MyGlo.BrushesOtchet = null;
            // Формируем отчет (если надо)
            MET_Inizial(PROP_Nodes);
            // Новый документ
            FlowDocument _FlowDocument = new FlowDocument();

            // Ширина
            _FlowDocument.ColumnWidth = 400;
            // Перебираем все вкладки и вытаскиваем из них информацию
            foreach (UserPole_History _MyPole in PRO_PoleHistory)
            {
                _MyPole.MET_StacPanel(_FlowDocument);  // если есть информация, то заносим её в locFlowDocument
            }
            // Добавляем отступы
            _FlowDocument.Blocks.FirstBlock.Padding = new Thickness(Blocks.FirstBlock.Padding.Left, PROP_Otstup, Blocks.FirstBlock.Padding.Right, Blocks.FirstBlock.Padding.Bottom);
            // Рисуем эмблему
            MET_ImageEmblema(_FlowDocument);
            // Формируем объект для печати
            MET_PreiwPrint(pMyDocumentViewer, _FlowDocument, pPrintNow);
            // Возвращаем отчет на место
            pFlowDocument.Blocks.Add(this);
            return(true);
        }
        public void OnLoadAsyncCallback(Exception ex)
        {
            if (ex != null)
            {
                //An error has occurred
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);
                MessageBox.Show("无法预览文件" + ex.Message);
                this.DialogResult = false;
            }

            MyDocumentViewer.SetFitMode(DocumentViewer.FitModes.Panel, DocumentViewer.FitModes.None);
            Busy.IsBusy = false;
        }
Exemple #3
0
        /// <summary>МЕТОД Создаем объект для печати</summary>
        /// <param name="pMyDocumentViewer">Просмоторщик печати</param>
        /// <param name="pFlowDocument">Документ, который печатаем</param>
        /// <param name="pPrintNow">Печатаем сразу</param>
        public virtual bool MET_CreatePrint(MyDocumentViewer pMyDocumentViewer, FlowDocument pFlowDocument, bool pPrintNow = false)
        {
            MyGlo.BrushesOtchet = null;                                         // сбрасываем фон
            MET_Inizial(PROP_Nodes);                                            // формируем отчет (если надо)
            FlowDocument _FlowDocument = new FlowDocument {
                ColumnWidth = 400
            };                                                                  // новый документ

            _FlowDocument.Blocks.Add(this);                                     // добавляем в документ наш отчет
            MET_ImageEmblema(_FlowDocument);                                    // рисуем эмблему
            MET_PreiwPrint(pMyDocumentViewer, _FlowDocument, pPrintNow);        // формируем объект для печати
            pFlowDocument.Blocks.Add(this);                                     // возвращаем отчет на место
            return(true);
        }
Exemple #4
0
        public void OnLoadAsyncCallback(Exception ex)
        {
            if (ex != null)
            {
                //An error has occurred
                Busy.IsBusy = false;
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);
                NotifyWindow lNotifyWIndow = new NotifyWindow("无法预览文件", "等待后台处理,请联系管理员!");
                lNotifyWIndow.Show();
                //Busy.IsBusy = false;
                //this.DialogResult = false;
            }

            MyDocumentViewer.SetFitMode(DocumentViewer.FitModes.Panel, DocumentViewer.FitModes.None);
            Busy.IsBusy = false;
        }
Exemple #5
0
 /// <summary>МЕТОД Формируем объект для печати</summary>
 /// <param name="pMyDocumentViewer">Просмоторщик печати</param>
 /// <param name="pFlowDocument">Документ, который печатаем</param>
 /// <param name="pPrintNow">Печатаем сразу</param>
 protected void MET_PreiwPrint(MyDocumentViewer pMyDocumentViewer, FlowDocument pFlowDocument, bool pPrintNow = false)
 {
     try
     {
         // ПЕЧАТЬ с помощью фалов в памяти
         // Подготовиться к сохранению содержимого в памяти
         MemoryStream _MemoryStream = new MemoryStream();
         // Создать пакет, используя статический метод Package.Open()
         Package _Package = Package.Open(_MemoryStream, FileMode.Create, FileAccess.ReadWrite);
         // Каждому пакету необходим URI. Использовать синтаксис pack://.
         // Действительное имя файла неважно
         Uri _Uri = new Uri("pack://filename.xps");
         // Удаляем пакет, если он уже был с таким именем
         PackageStore.RemovePackage(_Uri);
         // Добавить пакет
         PackageStore.AddPackage(_Uri, _Package);
         // Создать документ XPS на основе этого пакета. (с уровнем сжатия)
         XpsDocument _XpsDoc = new XpsDocument(_Package, CompressionOption.SuperFast, _Uri.AbsoluteUri);
         // Формируем файл просмотра печати
         XpsDocumentWriter _XpsDocWri = XpsDocument.CreateXpsDocumentWriter(_XpsDoc);
         // Создаем класс просмотра печати с нашими данными
         UserPrint _MyDocPag = new UserPrint(pFlowDocument, PROP_Nodes.PROP_prnPadding);
         // Отображаем наш класс
         _XpsDocWri.Write(_MyDocPag);
         // Подсоединяем документ к просмоторщику
         pMyDocumentViewer.Document = _XpsDoc.GetFixedDocumentSequence();
         // Устанавливаем просмотр по ширине
         pMyDocumentViewer.FitToWidth();
         // Закрываем файл просмотра печати
         _XpsDoc.Close();
         // Если печатаем сразу, без предварительного просмотра
         if (pPrintNow)
         {
             pMyDocumentViewer.MyPrintNow();
             // Чистим пакет и поток (хотя судя по памяти, результат не виден)
             _Package.Close();
             _MemoryStream.Dispose();
         }
     }
     catch
     {
         MessageBox.Show("Ошибка печати", "Ошибка печати");
     }
 }
Exemple #6
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //创建文档视图控件
            mDocumentView = new MyDocumentViewer(this.documentViewHost,
                                                 (PickedItem item, Document doc, ElementId id) =>
            {
                propertyBrowser.Children.Clear();

                if (!id.IsValid())
                {
                    return;
                }

                //增加一条日志
                this.outputCtrl.outputList.Items.Add(id.GetInteger());

                //显示选中图元的属性
                CreateElementPropertyUI(doc, id);
            });
            // 绑定构件浏览数据
            this.projectBrowser.ItemsSource = mDocumentListener.mProjectBrower;
        }
 private void TrunRightButton_Click(object sender, RoutedEventArgs e)
 {
     MyDocumentViewer.RotateClockwise();
 }