Exemplo n.º 1
0
        bool createDocument(double dpiX = 96, double dpiY = 96)
        {
            FixedDocument fixedDocument;
            PageContent   pageContent;
            FixedPage     fixedPage;

            double renderWidth  = Util.convertToDpi(printWidth, dpiX);
            double renderHeight = Util.convertToDpi(printHeight, dpiY);

            UIElement[] pages = contentInterface.getPrintPages(renderWidth, renderHeight);

            double scaleX = 1 / Util.convertToDpi(1, dpiX);
            double scaleY = 1 / Util.convertToDpi(1, dpiY);

            if (pages.Length > 0)
            {
                fixedDocument             = new FixedDocument();
                fixedDocument.PrintTicket = printDialog.PrintTicket;
                foreach (UIElement page in pages)
                {
                    fixedPage             = new FixedPage();
                    fixedPage.PrintTicket = printDialog.PrintTicket;
                    fixedPage.Width       = printWidth;
                    fixedPage.Height      = printHeight;
                    if (scaleX != 1 || scaleY != 1)
                    {
                        page.RenderTransform = new ScaleTransform(scaleX, scaleY);
                        FixedPage.SetLeft(page, printPosX);
                        FixedPage.SetTop(page, printPosY);
                    }
                    fixedPage.Children.Add(page);
                    pageContent       = new PageContent();
                    pageContent.Child = fixedPage;
                    fixedDocument.Pages.Add(pageContent);
                }

                document = fixedDocument;

                documentViewer.UpdateLayout();                  // this forces layout recalc / redraw of chrompage (including chromview)
            }
            return(pages.Length > 0);
        }
Exemplo n.º 2
0
        public void exportImage()
        {
            if (currentView != ViewType.Setup)
            {
                FileDialog dialog = new SaveFileDialog();
                double     width, height, dpi;
                dialog.Filter = "PNG files (*.png)|*.png|All files (*.*)|*.*";
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    dpi    = optionParams.exportDpi;
                    width  = Util.convertToDpi(printing.getWidth(), dpi);
                    height = Util.convertToDpi(printing.getHeight(), dpi);

                    ChromView chromView = new ChromView(Transparency.Partial);
                    chromView.visOutSet = view.getChromVisOutSet();
                    chromView.Arrange(new Rect(new Size(width, height)));
                    chromView.UpdateLayout();

                    Util.saveBitmapImage(Util.visualToBitmap(chromView, width, height), dialog.FileName);
                }
                Util.gcCollect();
            }
        }