Example #1
0
        public static void Print(FrameworkElement obj)
        {
            PrintDialog printDlg = new System.Windows.Controls.PrintDialog();

            if (printDlg.ShowDialog() == true)
            {
                Transform transform = obj.LayoutTransform;

                // get selected printer capabilities
                System.Printing.PrintCapabilities capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);

                // get scale of the print wrt to screen of WPF visual
                double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / obj.ActualWidth, capabilities.PageImageableArea.ExtentHeight / obj.ActualHeight);

                // Transform the Visual to scale
                obj.LayoutTransform = new ScaleTransform(scale, scale);

                // get the size of the printer page
                Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                // update the layout of the visual to the printer page size.
                obj.Measure(sz);
                obj.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                // now print the visual to printer to fit on the one page.
                printDlg.PrintVisual(obj, "UnisensViewer");

                obj.LayoutTransform = transform;
            }
        }
Example #2
0
        private void PrintElement(Visual visual)
        {
            PrintDialog printDlg = new System.Windows.Controls.PrintDialog();

            if (printDlg.ShowDialog() == true)
            {
                //get selected printer capabilities
                System.Printing.PrintCapabilities capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);

                //get the size of the printer page
                Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                VisualBrush b = new VisualBrush(visual)
                {
                    Stretch    = Stretch.Uniform,
                    AlignmentX = AlignmentX.Center,
                    AlignmentY = AlignmentY.Center,
                };

                Canvas c = new Canvas
                {
                    Height     = sz.Height,
                    Width      = sz.Width,
                    Background = b,
                };

                var skinDescription = (SkinDescription)Application.Current.Properties["CurrentSkinDescription"];

                var license = skinDescription.License;
                if (!string.IsNullOrEmpty(license))
                {
                    license = "License: " + license;
                }

                var notice = string.Format("{0}\n{1}", skinDescription.CopyrightNotice, license).Trim();

                if (!string.IsNullOrWhiteSpace(notice))
                {
                    var t = new TextBlock
                    {
                        Text                = notice,
                        FontSize            = 8,
                        Margin              = new Thickness(5),
                        HorizontalAlignment = HorizontalAlignment.Right,
                        VerticalAlignment   = VerticalAlignment.Bottom,
                        TextAlignment       = TextAlignment.Right,
                    };

                    Canvas.SetRight(t, 0);
                    Canvas.SetBottom(t, 0);

                    c.Children.Add(t);
                }

                c.Measure(sz);
                c.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                printDlg.PrintVisual(c, "Settlers Board Designer");
            }
        }
Example #3
0
        public static void Print(FrameworkElement toPrint)
        {
            PrintDialog prntDlg = new PrintDialog();

            if (prntDlg.ShowDialog() == true)
            {
                // Save old properties so toPrint can be returned to its original size/shape when printing is done
                Transform oldTransform = toPrint.LayoutTransform;
                Size      oldSize      = toPrint.DesiredSize;
                System.Printing.PrintCapabilities cap = prntDlg.PrintQueue.GetPrintCapabilities(prntDlg.PrintTicket);
                // Get the size of the printer page
                Size   sz     = new Size(cap.PageImageableArea.ExtentWidth, cap.PageImageableArea.ExtentHeight);
                Point  origin = new Point(cap.PageImageableArea.OriginWidth, cap.PageImageableArea.OriginHeight);
                double scale  = Math.Min(sz.Width / toPrint.ActualWidth, sz.Height / toPrint.ActualHeight);

                // TODO: Resizing does not currently work properly
                // Prepare the Element to be printed by resizing it so that it fits fully onto the page
                //toPrint.LayoutTransform = new ScaleTransform(scale, scale);
                //toPrint.Measure(sz);
                //toPrint.Arrange(new Rect(origin, sz));

                prntDlg.PrintVisual(toPrint, "Invoice");

                // Return the element to its original size and shape
                //toPrint.LayoutTransform = oldTransform;
                //toPrint.Measure(oldSize);
                //toPrint.Arrange(new Rect(new Point(0, 0), oldSize));
            }
        }
Example #4
0
        private void MenuItemPrint_Click(object sender, RoutedEventArgs e)
        {
            theBackendData.date = DateTime.Now.ToString("D", Thread.CurrentThread.CurrentUICulture);

            PrintWindow thePrintWindow = new PrintWindow();
            PrintDialog dialog         = new PrintDialog();

            if (dialog.ShowDialog() != true)
            {
                return;
            }

            System.Printing.PrintCapabilities capabilities = dialog.PrintQueue.GetPrintCapabilities(dialog.PrintTicket);

            Point printMargin = new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight);
            Size  printSize   = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);


            theBackendData.WriteLog("capabilities.PageImageableArea.OriginWidth = " + capabilities.PageImageableArea.OriginWidth, eid_vwr_loglevel.EID_VWR_LOG_DETAIL);
            theBackendData.WriteLog("capabilities.PageImageableArea.OriginHeight = " + capabilities.PageImageableArea.OriginHeight, eid_vwr_loglevel.EID_VWR_LOG_DETAIL);
            theBackendData.WriteLog("capabilities.PageImageableArea.ExtentWidth = " + capabilities.PageImageableArea.ExtentWidth, eid_vwr_loglevel.EID_VWR_LOG_DETAIL);
            theBackendData.WriteLog("capabilities.PageImageableArea.ExtentHeight = " + capabilities.PageImageableArea.ExtentHeight, eid_vwr_loglevel.EID_VWR_LOG_DETAIL);

            //Size printSize = new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight);
            //thePrintWindow.printWindowGrid.Measure(printSize);
            thePrintWindow.printWindowGrid.Arrange(new Rect(printMargin, printSize));

            dialog.PrintVisual(thePrintWindow.printWindowGrid, "Printing");
            thePrintWindow.Close();
        }
Example #5
0
        public void Print(RockSmithTabExplorer.Controls.TabControl tabControl, string jobTitle)
        {
            PrintDialog printDialog = new PrintDialog();

            if (printDialog.ShowDialog() == true)
            {
                System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
                double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / tabControl.ActualWidth, capabilities.PageImageableArea.ExtentHeight / tabControl.ActualHeight);
                //DoWithElementAtSize(tabControl, printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight, () =>
                //{

                //Transform the Visual to scale
                tabControl.LayoutTransform = new ScaleTransform(scale, scale);

                //get the size of the printer page
                Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                //update the layout of the visual to the printer page size.
                tabControl.Measure(sz);
                tabControl.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                printDialog.PrintVisual(tabControl, jobTitle);
                //});
            }
        }
Example #6
0
        private void Print()
        {
            try
            {
                PrintDialog printDlg = new PrintDialog();
                if (printDlg.ShowDialog() == true)
                {
                    System.Printing.PrintCapabilities capabilities =
                        printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);

                    //get scale of the print wrt to screen of WPF visual
                    double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / this.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                                            this.ActualHeight);
                    Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);
                    this.Height = capabilities.PageImageableArea.ExtentHeight;
                    this.Width  = capabilities.PageImageableArea.ExtentWidth;
                    this.Measure(sz);
                    //form.Width = 850;
                    //this.Arrange(new Rect(new Point(0, 0), this.DesiredSize));
                    // myPanel.Children.Add(form);
                    printDlg.PrintVisual(this, "Print Document");
                }
            }
            catch (Exception ex)
            {
            }
        }
Example #7
0
        private void ButtonPrint_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();

            if (printDialog.ShowDialog() == true)
            {
                using (new WaitCursor())
                {
                    System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
                    Size printAreaSize = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                    var document = new FixedDocument();
                    document.DocumentPaginator.PageSize = printAreaSize;

                    // This fills the whole printable area on the print.
                    double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / viewBoxPrintPreview.ActualWidth, capabilities.PageImageableArea.ExtentHeight / viewBoxPrintPreview.ActualHeight);
                    viewBoxPrintPreview.LayoutTransform = new ScaleTransform(scale, scale);
                    borderFirstPage.Child = null;
                    document.Pages.Add(CreateNewPage(viewBoxPrintPreview, printAreaSize));

                    if (((A4Print)DataContext).TwoPagePrint)
                    {
                        viewBoxPrintPreview2.LayoutTransform = new ScaleTransform(scale, scale);
                        borderSecondPage.Child = null;
                        document.Pages.Add(CreateNewPage(viewBoxPrintPreview2, printAreaSize));
                    }

                    printDialog.PrintDocument(document.DocumentPaginator, "Kerppi-tuloste");
                }
                Close();
            }
        }
Example #8
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Button is clicked.");

            PrintDialog printDlg = new PrintDialog();

            if (printDlg.ShowDialog() == true)
            {
                //get selected printer capabilities
                System.Printing.PrintCapabilities capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);

                //get scale of the print wrt to screen of WPF visual
                double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / this.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                                        this.ActualHeight);

                //Transform the Visual to scale
                this.LayoutTransform = new ScaleTransform(scale, scale);

                //get the size of the printer page
                Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                //update the layout of the visual to the printer page size.
                this.Measure(sz);
                this.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                //now print the visual to printer to fit on the one page.
                printDlg.PrintVisual(this.tableGrid, "First Fit to Page WPF Print");
            }
        }
        public static FixedDocument GetFixedDocument(FrameworkElement toPrint, PrintDialog printDialog)
        {
            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("Starting {0}", MethodBase.GetCurrentMethod().ToString());
            }
            if (toPrint == null)
            {
                return(null);
            }
            if (printDialog == null)
            {
                return(null);
            }
            System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);

            Size          pageSize    = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);
            Size          visibleSize = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);
            FixedDocument fixedDoc    = new FixedDocument();

            //If the toPrint visual is not displayed on screen we neeed to measure and arrange it
            toPrint.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
            toPrint.Arrange(new Rect(new Point(0, 0), toPrint.DesiredSize));
            //
            Size size = toPrint.DesiredSize;
            //Will assume for simplicity the control fits horizontally on the page
            double yOffset = 0;

            while (yOffset < size.Height)
            {
                VisualBrush vb = new VisualBrush(toPrint);
                vb.Stretch      = Stretch.None;
                vb.AlignmentX   = AlignmentX.Left;
                vb.AlignmentY   = AlignmentY.Top;
                vb.ViewboxUnits = BrushMappingMode.Absolute;
                vb.TileMode     = TileMode.None;
                vb.Viewbox      = new Rect(0, yOffset, visibleSize.Width, visibleSize.Height);
                PageContent pageContent = new PageContent();
                FixedPage   page        = new FixedPage();
                ((IAddChild)pageContent).AddChild(page);
                fixedDoc.Pages.Add(pageContent);
                page.Width  = pageSize.Width;
                page.Height = pageSize.Height;
                Canvas canvas = new Canvas();
                FixedPage.SetLeft(canvas, capabilities.PageImageableArea.OriginWidth);
                FixedPage.SetTop(canvas, capabilities.PageImageableArea.OriginHeight);
                canvas.Width      = visibleSize.Width;
                canvas.Height     = visibleSize.Height;
                canvas.Background = vb;
                page.Children.Add(canvas);
                yOffset += visibleSize.Height;
            }
            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("Ending {0}", MethodBase.GetCurrentMethod().ToString());
            }
            return(fixedDoc);
        }
Example #10
0
        /// <summary>
        /// Sizes the given bitmap to the page size and returns it as part
        /// of a printable page.
        /// </summary>
        /// <param name="bmp">
        /// The bitmap to search through for a breakpoint.
        /// </param>
        /// <param name="top">
        /// The top row to print with.
        /// </param>
        /// <param name="bottom">
        /// The bottom row to print with.
        /// </param>
        /// <param name="pageWidth">
        /// The available width of the page to print.
        /// </param>
        /// <param name="PageHeight">
        /// The available height of the page to print.
        /// </param>
        /// <param name="capabilities">
        /// The possible printing features.
        /// </param>
        private static PageContent GeneratePageContent(
            System.Drawing.Bitmap bmp,
            int top,
            int bottom,
            double pageWidth,
            double PageHeight,
            System.Printing.PrintCapabilities capabilities)
        {
            Image        pageImage;
            BitmapSource bmpSource;

            //Creates a page with a specific width/height.
            FixedPage printPage = new FixedPage();

            printPage.Width  = pageWidth;
            printPage.Height = PageHeight;

            //Cuts the given image at a reasonable boundary.
            int newImageHeight = bottom - top;

            //Creates a clone of the image.
            using (System.Drawing.Bitmap bmpCut =
                       bmp.Clone(new System.Drawing.Rectangle(0, top, bmp.Width, newImageHeight),
                                 bmp.PixelFormat))
            {
                //Prepares the bitmap source.
                pageImage = new Image();
                bmpSource =
                    System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                        bmpCut.GetHbitmap(),
                        IntPtr.Zero,
                        Int32Rect.Empty,
                        BitmapSizeOptions.FromWidthAndHeight(bmpCut.Width, bmpCut.Height));
            }

            //Adds the bitmap to the page.
            pageImage.Source            = bmpSource;
            pageImage.VerticalAlignment = VerticalAlignment.Top;
            printPage.Children.Add(pageImage);

            PageContent pageContent = new PageContent();

            ((System.Windows.Markup.IAddChild)pageContent).AddChild(printPage);

            //Adds a margin.
            printPage.Margin = new Thickness(
                horzBorder, vertBorder,
                horzBorder, vertBorder);

            FixedPage.SetLeft(pageImage, capabilities.PageImageableArea.OriginWidth);
            FixedPage.SetTop(pageImage, capabilities.PageImageableArea.OriginHeight);

            //Adjusts for the margins and to fit the page.
            pageImage.Width  = capabilities.PageImageableArea.ExtentWidth - horzBorder * 2;
            pageImage.Height = capabilities.PageImageableArea.ExtentHeight - vertBorder * 2;
            return(pageContent);
        }
Example #11
0
        private void Print(FileItem item, AutoExportPluginConfig configData)
        {
            try
            {
                PrintDialog dlg = new PrintDialog();
                configData.IsRedy  = false;
                configData.IsError = false;
                var conf    = new PrintPluginViewModel(configData);
                var outfile = Path.Combine(Path.GetTempPath(), Path.GetFileName(item.FileName));

                outfile = AutoExportPluginHelper.ExecuteTransformPlugins(item, configData, outfile);

                System.Printing.PrintCapabilities capabilities = dlg.PrintQueue.GetPrintCapabilities(dlg.PrintTicket);
                var PageWidth  = (int)capabilities.PageImageableArea.ExtentWidth;
                var PageHeight = (int)capabilities.PageImageableArea.ExtentHeight;

                var panel = new StackPanel
                {
                    Margin = new Thickness(conf.Margin),
                };

                var image = new Image
                {
                    Source  = BitmapLoader.Instance.LoadImage(outfile, PageWidth > PageHeight ? PageWidth : PageHeight, conf.Rotate ? 90 : 0),
                    Width   = PageWidth,
                    Height  = PageHeight,
                    Stretch = Stretch.Uniform,
                };


                panel.Children.Add(image);
                panel.UpdateLayout();
                panel.Measure(new Size(PageWidth, PageHeight));
                panel.Arrange(new Rect(new Point(0, 0), panel.DesiredSize));
                panel.UpdateLayout();
                dlg.PrintVisual(panel, item.Name);
                image.Source = null;
                panel.Children.Clear();
                // remove unused file
                if (outfile != item.FileName)
                {
                    PhotoUtils.WaitForFile(outfile);
                    File.Delete(outfile);
                }
            }
            catch (Exception exception)
            {
                Log.Error("Error print file", exception);
                configData.IsError = true;
                configData.Error   = exception.Message;
            }

            configData.IsRedy = true;
        }
Example #12
0
        private static Rect GetImageableRect(PrintDialog dialog)
        {
            Rect imageableRect = Rect.Empty;

            Invariant.Assert(dialog != null, "Dialog should not be null.");

            System.Printing.PrintQueue        queue         = null;
            System.Printing.PrintCapabilities capabilities  = null;
            System.Printing.PageImageableArea imageableArea = null;

            // This gets the PringDocumentImageableArea.OriginWidth/OriginHeight
            // of the PrintQueue the user chose in the dialog.
            CodeAccessPermission printp = SystemDrawingHelper.NewDefaultPrintingPermission();

            printp.Assert();//Blessed Assert to get PrintQueue and call GetPrintCapabilities
            try
            {
                queue = dialog.PrintQueue;
                if (queue != null)
                {
                    capabilities = queue.GetPrintCapabilities();
                }
            }
            finally
            {
                CodeAccessPermission.RevertAssert();
            }

            if (capabilities != null)
            {
                imageableArea = capabilities.PageImageableArea;
                if (imageableArea != null)
                {
                    imageableRect = new Rect(imageableArea.OriginWidth,
                                             imageableArea.OriginHeight,
                                             imageableArea.ExtentWidth,
                                             imageableArea.ExtentHeight);
                }
            }

            // If for any reason we couldn't get the actual printer's values
            // we fallback to a constant and the values available from the
            // PrintDialog.
            if (imageableRect == Rect.Empty)
            {
                imageableRect = new Rect(NON_PRINTABLE_MARGIN,
                                         NON_PRINTABLE_MARGIN,
                                         dialog.PrintableAreaWidth,
                                         dialog.PrintableAreaHeight);
            }

            return(imageableRect);
        }
        private static void Print(Visual v)
        {
            System.Windows.FrameworkElement e = v as System.Windows.FrameworkElement;
            if (e == null)
            {
                return;
            }

            PrintDialog pd = new PrintDialog();

            if (pd.ShowDialog() == true)
            {
                //store original scale
                Transform originalScale = e.LayoutTransform;
                //get selected printer capabilities

                System.Printing.PrintCapabilities capabilities = pd.PrintQueue.GetPrintCapabilities(pd.PrintTicket);

                //get scale of the print wrt to screen of WPF visual
                if (capabilities.PageImageableArea == null)
                {
                    return;
                }
                double scale = Math.Min(
                    capabilities.PageImageableArea.ExtentWidth / e.ActualWidth,
                    capabilities.PageImageableArea.ExtentHeight / e.ActualHeight);

                //Transform the Visual to scale
                e.LayoutTransform = new ScaleTransform(scale, scale);

                //get the size of the printer page
                System.Windows.Size sz = new System.Windows.Size(
                    capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                //update the layout of the visual to the printer page size.
                e.Measure(sz);
                e.Arrange(
                    new System.Windows.Rect(
                        new System.Windows.Point(
                            capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight),
                        sz));

                //now print the visual to printer to fit on the one page.
                pd.PrintVisual(v, "My Print");

                //apply the original transform.
                e.LayoutTransform = originalScale;
            }
        }
Example #14
0
        private void btn_print_Click_1(object sender, RoutedEventArgs e)
        {
            PrintDialog pdlg = new PrintDialog();

            if (pdlg.ShowDialog().GetValueOrDefault(false))
            {
                Size origin = new Size(gridContent.ActualWidth, gridContent.ActualHeight);
                System.Printing.PrintCapabilities cpb = pdlg.PrintQueue.GetPrintCapabilities(pdlg.PrintTicket);
                Size size = new Size(cpb.PageImageableArea.ExtentWidth, cpb.PageImageableArea.ExtentHeight);
                gridContent.Measure(size);
                gridContent.Arrange(new Rect(new Point(0, 100), size));
                pdlg.PrintVisual(gridContent, "Test");
                gridContent.Arrange(new Rect(new Point(0, 0), origin));
            }
        }
Example #15
0
        public void Print(System.Windows.Controls.Image image)
        {
            System.Printing.LocalPrintServer localPrintServer = new System.Printing.LocalPrintServer();
            PrintDialog printDialog = new PrintDialog();

            System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
            double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / image.ActualWidth, capabilities.PageImageableArea.ExtentHeight / image.ActualHeight);

            image.LayoutTransform = new System.Windows.Media.ScaleTransform(scale, scale);
            System.Windows.Size sz = new System.Windows.Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);
            image.Measure(sz);
            image.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

            printDialog.PrintVisual(image, "Print Image");
        }
Example #16
0
        public static void Print(FrameworkElement visual)
        {
            PrintDialog dialog = new PrintDialog();

            if (dialog.ShowDialog() == true)
            {
                System.Printing.PrintCapabilities capabilities = dialog.PrintQueue.GetPrintCapabilities(dialog.PrintTicket);
                double    scale             = Math.Min(capabilities.PageImageableArea.ExtentWidth / visual.ActualWidth, capabilities.PageImageableArea.ExtentHeight / visual.ActualHeight);
                Transform originalTransform = visual.LayoutTransform;
                visual.LayoutTransform = new ScaleTransform(scale, scale);
                Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);
                visual.Measure(sz);
                visual.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));
                dialog.PrintVisual(visual, "Chart");
                visual.LayoutTransform = originalTransform;
            }
        }
Example #17
0
 private void LoadPrinterSettings()
 {
     try
     {
         PrinterName = Dlg.PrintQueue.Name;
         System.Printing.PrintCapabilities capabilities = Dlg.PrintQueue.GetPrintCapabilities(Dlg.PrintTicket);
         if (capabilities.PageImageableArea != null)
         {
             PageWidth  = (int)capabilities.PageImageableArea.ExtentWidth;
             PageHeight = (int)capabilities.PageImageableArea.ExtentHeight;
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show("Unable to load settings " + exception.Message);
         Log.Error("Unable to load settings", exception);
     }
 }
        private void BtnPrintEx_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog dialog = new PrintDialog();

            if (dialog.ShowDialog() != true)
            {
                return;
            }

            System.Printing.PrintCapabilities capabilities = dialog.PrintQueue.GetPrintCapabilities(dialog.PrintTicket);

            StackPanel myPanel = new StackPanel();

            myPanel.Margin = new Thickness(10);

            Image myImage = new Image();

            myImage.Width   = 1000;
            myImage.Height  = 1000;
            myImage.Stretch = Stretch.Uniform;
            myImage.Source  = new BitmapImage(new Uri(txtImageFilePath.Text, UriKind.Absolute));

            double scale = Math.Min(
                capabilities.PageImageableArea.ExtentWidth / myImage.Width,
                capabilities.PageImageableArea.ExtentHeight / myImage.Height);

            myImage.LayoutTransform = new ScaleTransform(scale, scale);

            myPanel.Children.Add(myImage);

            //TextBlock myBlock = new TextBlock();
            //myBlock.Text = "A Great Image.";
            //myBlock.TextAlignment = TextAlignment.Center;

            //myPanel.Children.Add(myBlock);

            //get the size of the printer page
            System.Windows.Size sz = new System.Windows.Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

            myPanel.Measure(sz);
            myPanel.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

            dialog.PrintVisual(myPanel, "A Great Image.");
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (dlg.ShowDialog() == true)
            {
                //get selected printer capabilities
                System.Printing.PrintCapabilities capabilities = dlg.PrintQueue.GetPrintCapabilities(dlg.PrintTicket);

                //get the size of the printer page
                System.Windows.Size sz = new System.Windows.Size(capabilities.PageImageableArea.ExtentWidth, (capabilities.PageImageableArea.ExtentHeight / 1));

                //update the layout of the visual to the printer page size.
                this.ficha.Measure(sz);

                this.ficha.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                //now print the visual to printer to fit on the one page.
                dlg.PrintVisual(this.ficha, "Ficha Cliente");
            }
            this.Close();
        }
Example #20
0
        private void btnReport_Click(object sender, RoutedEventArgs e)
        {
            if (grdToPrint.Visibility == Visibility.Collapsed)
            {
                MyMessageBox.Show("يجب عرض التقرير اولاً");
                return;
            }

            //var uc = LoadTemplate(Path.Combine(Environment.CurrentDirectory, "VoucherReportTemplate.xaml")) as UserControl;

            // Create the print dialog object and set options
            PrintDialog pDialog = new PrintDialog();

            pDialog.PageRangeSelection            = PageRangeSelection.AllPages;
            pDialog.UserPageRangeEnabled          = true;
            pDialog.PrintQueue                    = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
            pDialog.PrintTicket                   = pDialog.PrintQueue.DefaultPrintTicket;
            pDialog.PrintTicket.PageScalingFactor = 1;

            System.Printing.PrintCapabilities capabilities = null;
            try
            { capabilities = pDialog.PrintQueue.GetPrintCapabilities(pDialog.PrintTicket); }
            catch
            { capabilities = null; }
            sv.Content = null;
            Viewbox vb = new Viewbox();

            vb.Child = grdToPrint;

            System.Windows.Size sz = new Size(760, grdToPrint.ActualHeight);
            vb.MinWidth  = 1;
            vb.MinHeight = 1;
            vb.Measure(sz);
            vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

            pDialog.PrintVisual(vb, "MyViewBox");
            vb.Child   = null;
            sv.Content = grdToPrint;
        }
Example #21
0
        private void btn_print_Click_1(object sender, RoutedEventArgs e)
        {
            PrintDialog pdlg = new PrintDialog();

            if (pdlg.ShowDialog().GetValueOrDefault(false))
            {
                //System.Printing.PrintCapabilities cpb = pdlg.PrintQueue.GetPrintCapabilities(pdlg.PrintTicket);
                //Size size = new Size(cpb.PageImageableArea.ExtentWidth+75, cpb.PageImageableArea.ExtentHeight);
                //gridContent.Measure(size);
                //Point point = new Point(150,100);
                //gridContent.Arrange(new Rect(point, size));
                //pdlg.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape;
                //pdlg.PrintVisual(gridContent, "Trip");
                Size origin = new Size(gridContent.ActualWidth, gridContent.ActualHeight);
                System.Printing.PrintCapabilities cpb = pdlg.PrintQueue.GetPrintCapabilities(pdlg.PrintTicket);
                Size size = new Size(cpb.PageImageableArea.ExtentWidth + 100, cpb.PageImageableArea.ExtentHeight);
                gridContent.Measure(size);
                gridContent.Arrange(new Rect(new Point(100, 100), size));
                pdlg.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape;
                pdlg.PrintVisual(gridContent, "Trip");
                gridContent.Arrange(new Rect(new Point(), origin));
            }
        }
Example #22
0
        private static Rect GetPrintableArea(PrintDialog printDialog)
        {
            System.Printing.PrintCapabilities cap = null;
            try
            {
                cap = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
            }
            catch
            {
                return(Rect.Empty);
            }

            if (cap.PageImageableArea == null)
            {
                return(Rect.Empty);
            }

            var leftMargin = cap.OrientedPageMediaWidth.HasValue ? (cap.OrientedPageMediaWidth.Value - cap.PageImageableArea.ExtentWidth) / 2 : 0;
            var topMargin  = cap.OrientedPageMediaHeight.HasValue ? (cap.OrientedPageMediaHeight.Value - cap.PageImageableArea.ExtentHeight) / 2 : 0;
            var width      = cap.PageImageableArea.ExtentWidth;
            var height     = cap.PageImageableArea.ExtentHeight;

            return(new Rect(leftMargin, topMargin, width, height));
        }
Example #23
0
        } // CONSULTA EN LA PAGINA DEL IVVS

        private void IMPRIMIR_Click(object sender, RoutedEventArgs e)
        {
            logoBdv.Visibility = Visibility.Hidden;

            buscar.Visibility       = Visibility.Collapsed;
            optionStack.Visibility  = Visibility.Collapsed;
            ivvsConsulta.Visibility = Visibility.Collapsed;
            optionStack2.Visibility = Visibility.Collapsed;
            USER.Visibility         = Visibility.Collapsed;
            optionStack3.Visibility = Visibility.Collapsed;

            text1.Visibility  = Visibility.Collapsed;
            text2.Visibility  = Visibility.Collapsed;
            text3.Visibility  = Visibility.Collapsed;
            text4.Visibility  = Visibility.Collapsed;
            text5.Visibility  = Visibility.Collapsed;
            text6.Visibility  = Visibility.Collapsed;
            text7.Visibility  = Visibility.Collapsed;
            text8.Visibility  = Visibility.Collapsed;
            text9.Visibility  = Visibility.Collapsed;
            text10.Visibility = Visibility.Collapsed;
            text11.Visibility = Visibility.Collapsed;
            text12.Visibility = Visibility.Collapsed;
            text13.Visibility = Visibility.Collapsed;
            text14.Visibility = Visibility.Collapsed;
            text15.Visibility = Visibility.Collapsed;
            text16.Visibility = Visibility.Collapsed;
            text17.Visibility = Visibility.Collapsed;
            text18.Visibility = Visibility.Collapsed;

            text21.Visibility = Visibility.Collapsed;


            listaProducto.Visibility       = Visibility.Collapsed;
            listaNroCredito.Visibility     = Visibility.Collapsed;
            listaHistorico.Visibility      = Visibility.Collapsed;
            listaMontoLiquidado.Visibility = Visibility.Collapsed;
            listaFechaLiquidado.Visibility = Visibility.Collapsed;
            listaFechaAumento.Visibility   = Visibility.Collapsed;
            listaMora.Visibility           = Visibility.Collapsed;

            listaMes_1.Visibility         = Visibility.Collapsed;
            listaMes_2.Visibility         = Visibility.Collapsed;
            listaMes_3.Visibility         = Visibility.Collapsed;
            listaSalario.Visibility       = Visibility.Collapsed;
            listaNombreEmpresa.Visibility = Visibility.Collapsed;
            listaRifEmpresa.Visibility    = Visibility.Collapsed;

            listaMes_1_saldo.Visibility = Visibility.Collapsed;
            listaMes_2_saldo.Visibility = Visibility.Collapsed;
            listaMes_3_saldo.Visibility = Visibility.Collapsed;
            listaSaldoPro.Visibility    = Visibility.Collapsed;

            clienteNombreImp.Text       = clienteNombre.Text;
            clienteNombreImp.Visibility = Visibility.Visible;
            clienteNombre.Visibility    = Visibility.Collapsed;

            riesgoConsolidadoImp.Visibility = Visibility.Visible;
            aprobadoreferido.Visibility     = Visibility.Collapsed;

            text26.Visibility = Visibility.Visible;

            if (casoReferido.IsChecked == true)
            {
                riesgoConsolidadoImp.Text       = aprobadoreferido.Text;
                riesgoConsolidadoImp.Foreground = Brushes.White;
            }
            else
            {
                riesgoConsolidadoImp.Text       = riesgoConsolidado.Text;
                riesgoConsolidadoImp.Foreground = Brushes.White;
            }


            riesgoConsolidado.Visibility = Visibility.Collapsed;

            observacion.Visibility     = Visibility.Collapsed;
            observacionText.Visibility = Visibility.Collapsed;

            referidoPor.Visibility     = Visibility.Collapsed;
            referidoPorText.Visibility = Visibility.Collapsed;

            observacionTextImp.Text = observacionText.Text;
            observacionImp.Text     = observacion.Text;

            referidoPorTextImp.Text = referidoPorText.Text;
            referidoPorImp.Text     = referidoPor.Text;

            observacionTextImp.Visibility = Visibility.Visible;
            observacionImp.Visibility     = Visibility.Visible;

            referidoPorTextImp.Visibility = Visibility.Visible;
            referidoPorImp.Visibility     = Visibility.Visible;

            PrintDialog printDlg = new System.Windows.Controls.PrintDialog();

            if (printDlg.ShowDialog() == true)

            {
                //get selected printer capabilities

                System.Printing.PrintCapabilities capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);

                //get scale of the print wrt to screen of WPF visual

                double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / this.ActualWidth, capabilities.PageImageableArea.ExtentHeight /

                                        this.ActualHeight);

                //Transform the Visual to scale

                this.LayoutTransform = new ScaleTransform(scale, scale);

                //get the size of the printer page

                Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                //update the layout of the visual to the printer page size.

                this.Measure(sz);

                this.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                //now print the visual to printer to fit on the one page.

                printDlg.PrintVisual(this, "First Fit to Page WPF Print");
            }
        } // IMPRPIME VENTANA ACTIVA
Example #24
0
        /// <summary>
        /// Prints a visual, breaking across pages. The user should've already
        /// accepted the print job. Returns success.
        /// </summary>
        public static bool PrintAcrossPages(PrintDialog dlg, FrameworkElement element)
        {
            FrameworkElement printable = element;

            System.Drawing.Bitmap bmp = null;

            if (dlg != null && printable != null)
            {
                Mouse.OverrideCursor = Cursors.Wait;

                System.Printing.PrintCapabilities capabilities =
                    dlg.PrintQueue.GetPrintCapabilities(dlg.PrintTicket);
                dlg.PrintTicket.PageBorderless = System.Printing.PageBorderless.None;

                double        dpiScale = dpiY / 96.0;
                FixedDocument document = new FixedDocument();

                try
                {
                    //Sets width and waits for changes to settle.
                    printable.Width = capabilities.PageImageableArea.ExtentWidth;
                    printable.UpdateLayout();

                    //Recomputes the desired height.
                    printable.Measure(new Size(
                                          double.PositiveInfinity,
                                          double.PositiveInfinity));

                    //Sets the new desired size.
                    Size size = new Size(
                        capabilities.PageImageableArea.ExtentWidth,
                        printable.DesiredSize.Height);

                    //Measures and arranges to the desired size.
                    printable.Measure(size);
                    printable.Arrange(new Rect(size));

                    //Converts GUI to bitmap at 300 DPI
                    RenderTargetBitmap bmpTarget = new RenderTargetBitmap(
                        (int)(capabilities.PageImageableArea.ExtentWidth * dpiScale),
                        (int)(printable.ActualHeight * dpiScale),
                        dpiX, dpiY, PixelFormats.Pbgra32);
                    bmpTarget.Render(printable);

                    //Converts RenderTargetBitmap to bitmap.
                    PngBitmapEncoder png = new PngBitmapEncoder();
                    png.Frames.Add(BitmapFrame.Create(bmpTarget));

                    using (MemoryStream memStream = new MemoryStream())
                    {
                        png.Save(memStream);
                        bmp = new System.Drawing.Bitmap(memStream);
                        png = null;
                    }

                    using (bmp)
                    {
                        document.DocumentPaginator.PageSize =
                            new Size(dlg.PrintableAreaWidth, dlg.PrintableAreaHeight);

                        //Breaks bitmap to fit across pages.
                        int pageBreak     = 0;
                        int lastPageBreak = 0;
                        int pageHeight    = (int)
                                            (capabilities.PageImageableArea.ExtentHeight * dpiScale);

                        //Adds each full page.
                        while (pageBreak < bmp.Height - pageHeight)
                        {
                            pageBreak += pageHeight;

                            //Finds a page breakpoint from bottom, up.
                            pageBreak = FindRowBreakpoint(bmp, lastPageBreak, pageBreak);

                            //Adds the image segment to its own page.
                            PageContent pageContent = GeneratePageContent(
                                bmp, lastPageBreak, pageBreak,
                                document.DocumentPaginator.PageSize.Width,
                                document.DocumentPaginator.PageSize.Height,
                                capabilities);

                            document.Pages.Add(pageContent);
                            lastPageBreak = pageBreak;
                        }

                        //Adds remaining page contents.
                        PageContent lastPageContent = GeneratePageContent(
                            bmp, lastPageBreak,
                            bmp.Height, document.DocumentPaginator.PageSize.Width,
                            document.DocumentPaginator.PageSize.Height, capabilities);

                        document.Pages.Add(lastPageContent);
                    }
                }
                catch (Exception e)
                {
                    Utils.Log("Printing error: " + e.Message);
                    MessageBox.Show("An error occurred while trying " +
                                    "to print.");
                }

                //Drops visual size adjustments.
                finally
                {
                    //Unsets width and waits for changes to settle.
                    printable.Width = double.NaN;
                    printable.UpdateLayout();

                    printable.LayoutTransform = new ScaleTransform(1, 1);

                    //Recomputes the desired height.
                    Size size = new Size(
                        capabilities.PageImageableArea.ExtentWidth,
                        capabilities.PageImageableArea.ExtentHeight);

                    //Measures and arranges to the desired size.
                    printable.Measure(size);
                    printable.Arrange(new Rect(new Point(
                                                   capabilities.PageImageableArea.OriginWidth,
                                                   capabilities.PageImageableArea.OriginHeight), size));

                    Mouse.OverrideCursor = null;
                }

                dlg.PrintDocument(document.DocumentPaginator, GlobalStrings.ApplicationName);
                return(true);
            }

            return(false);
        }
Example #25
0
        /// <summary>
        /// Method for safe printing all on one page
        /// </summary>
        /// <param name="v">Visual to be printed</param>
        /// <param name="page">Page to be printed</param>
        private void Print(Visual v, int page)
        {
            System.Windows.FrameworkElement e = v as System.Windows.FrameworkElement;
            if (e == null)
            {
                return;
            }

            PrintDialog pd = new PrintDialog();

            // mandate specific page
            pd.UserPageRangeEnabled = false;
            pd.PageRange            = new PageRange(page);

            // set to id maker
            try
            {
                pd.PrintQueue = new System.Printing.PrintQueue(new System.Printing.PrintServer(), Properties.Settings.Default.PrinterName);
            }
            catch (Exception ex)
            {
#if DEBUG
                MessageBox.Show("Exception caught during printer choosing.\r\n\r\n" +
                                ex.Message +
                                "\r\nCurrent printer in Properties.Resources: " +
                                Properties.Settings.Default.PrinterName + ".",
                                "Exception",
                                MessageBoxButton.OK,
                                MessageBoxImage.Error);
#else
                MessageBoxResult exRes = MessageBox.Show("Ensure your " +
                                                         Properties.Settings.Default.PrinterName +
                                                         " is plugged in and ready." +
                                                         "\r\n\r\nPrint to another printer?",
                                                         "Error printing.",
                                                         MessageBoxButton.OKCancel,
                                                         MessageBoxImage.Error,
                                                         MessageBoxResult.Cancel);
                switch (exRes)
                {
                case MessageBoxResult.OK:
                    break;

                case MessageBoxResult.Cancel:
                    return;
                }
#endif
            }

            if (pd.ShowDialog().Value)
            {
                //store original scale
                Transform originalScale = e.LayoutTransform;
                //get selected printer capabilities
                System.Printing.PrintCapabilities capabilities = pd.PrintQueue.GetPrintCapabilities(pd.PrintTicket);

                //get scale of the print wrt to screen of WPF visual
                double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / e.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                                        e.ActualHeight);

                //Transform the Visual to scale
                e.LayoutTransform = new ScaleTransform(scale, scale);

                //get the size of the printer page
                System.Windows.Size sz = new System.Windows.Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);

                //update the layout of the visual to the printer page size.
                e.Measure(sz);
                e.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                //now print the visual to printer to fit on the one page.
                pd.PrintVisual(v, "My Print");

                //apply the original transform.
                e.LayoutTransform = originalScale;
            }
        }
Example #26
0
        static void PrintingTest()
        {
            System.Printing.PrintServer printServer = new System.Printing.PrintServer(@"\\qsdc001");


            System.Printing.PrintQueueCollection printQueuesAvailable = printServer.GetPrintQueues();


            foreach (System.Printing.PrintQueue currentPrintQueue in printQueuesAvailable)
            {
                System.Diagnostics.Debug.WriteLine("Print Queue: " + currentPrintQueue.Name);



                System.Printing.PrintCapabilities capabilities = currentPrintQueue.GetPrintCapabilities();

                for (Int32 currentIndex = 0; currentIndex < capabilities.DuplexingCapability.Count; currentIndex++)
                {
                    System.Diagnostics.Debug.WriteLine("Duplexing: " + capabilities.DuplexingCapability[currentIndex].ToString());
                }


                for (Int32 currentIndex = 0; currentIndex < capabilities.OutputColorCapability.Count; currentIndex++)
                {
                    System.Diagnostics.Debug.WriteLine("Color: " + capabilities.OutputColorCapability[currentIndex].ToString());
                }


                for (Int32 currentIndex = 0; currentIndex < capabilities.OutputQualityCapability.Count; currentIndex++)
                {
                    System.Diagnostics.Debug.WriteLine("Quality: " + capabilities.OutputQualityCapability[currentIndex].ToString());
                }


                for (Int32 currentIndex = 0; currentIndex < capabilities.PageResolutionCapability.Count; currentIndex++)
                {
                    System.Diagnostics.Debug.WriteLine("Resolution: " + capabilities.PageResolutionCapability[currentIndex].ToString());
                }

                String printCapabilities = System.Text.ASCIIEncoding.ASCII.GetString(currentPrintQueue.GetPrintCapabilitiesAsXml().ToArray());

                printCapabilities = printCapabilities.Replace("<psf:", "<");

                printCapabilities = printCapabilities.Replace("</psf:", "</");

                System.Diagnostics.Debug.WriteLine(printCapabilities);

                System.Xml.XmlDocument capabilitiesXml = new System.Xml.XmlDocument();

                capabilitiesXml.LoadXml(printCapabilities);

                System.Diagnostics.Debug.WriteLine(printCapabilities);

                foreach (System.Xml.XmlNode currentNode in capabilitiesXml.SelectNodes("/PrintCapabilities/Feature[@name=\"psk:JobInputBin\"]/Option"))
                {
                    String printTrayName = currentNode.Attributes["name"].InnerText.Split(':')[currentNode.Attributes["name"].InnerText.Split(':').Length - 1];

                    Console.WriteLine(printTrayName);
                }

                foreach (System.Printing.InputBin currentInputBin in currentPrintQueue.GetPrintCapabilities().InputBinCapability)
                {
                    Console.WriteLine(currentInputBin);
                }
            }


            Console.WriteLine("\nPress Return to continue.");

            Console.ReadLine();



            return;
        }
Example #27
0
        public static void printReportNew(Order order)
        {
            Family    f  = Family.GetFamilyByID(order.FamilyID.Value);
            TextBlock tb = new TextBlock();

            tb.FontFamily = new System.Windows.Media.FontFamily("Arial");
            tb.Inlines.Add(new Bold(new Run("جمعية الإحسان الخيرية التنموية بحلب")));
            tb.Inlines.Add(new LineBreak());
            tb.Inlines.Add(new LineBreak());
            tb.Inlines.Add(new Run("التاريخ " + order.Date.Value.ToString("dd/MM/yyyy hh:mm")));
            tb.Inlines.Add(new LineBreak());
            tb.Inlines.Add(new Run("المسلم " + User.GetUserNameByID(order.LastUserID)));
            tb.Inlines.Add(new LineBreak());
            tb.Inlines.Add(new Run("رمز العائلة " + f.FamilyCode));
            tb.Inlines.Add(new LineBreak());
            tb.Inlines.Add(new Run("اسم العائلة " + f.FamilyName));
            tb.Inlines.Add(new LineBreak());
            if (order.NextOrderDate.HasValue)
            {
                tb.Inlines.Add(new Run("الاستلام القادم " + order.NextOrderDate.Value.ToString("dd-MM-yyyy")));
                tb.Inlines.Add(new LineBreak());
            }
            tb.Inlines.Add(new Underline(new Run("المواد المسلّمة :")));
            tb.Inlines.Add(new LineBreak());

            // Add some Bold text to the paragraph
            for (int i = 0; i < order.OIs.Count; i++)
            {
                var x = order.OIs[i].Item;
                tb.Inlines.Add(new Run(x.Source + " " + x.Name + "\t (" + order.OIs[i].Quantity + ")"));
                tb.Inlines.Add(new LineBreak());
            }
            tb.Margin   = new Thickness(5, 2, 5, 2);
            tb.FontSize = 12;

            Grid g = new Grid();

            g.FlowDirection = FlowDirection.RightToLeft;
            g.Children.Add(tb);

            // Create the print dialog object and set options
            PrintDialog pDialog = new PrintDialog();

            pDialog.PageRangeSelection            = PageRangeSelection.AllPages;
            pDialog.UserPageRangeEnabled          = true;
            pDialog.PrintQueue                    = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
            pDialog.PrintTicket                   = pDialog.PrintQueue.DefaultPrintTicket;
            pDialog.PrintTicket.PageScalingFactor = 1;

            System.Printing.PrintCapabilities capabilities = null;
            try
            {
                capabilities = pDialog.PrintQueue.GetPrintCapabilities(pDialog.PrintTicket);
            }
            catch
            {
                capabilities = null;
            }

            Viewbox vb = new Viewbox();

            vb.Child = g;

            System.Windows.Size sz = new System.Windows.Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);
            vb.MinWidth  = 1;
            vb.MinHeight = 1;
            vb.Measure(sz);
            vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

            double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / vb.ActualWidth, capabilities.PageImageableArea.ExtentHeight / vb.ActualHeight);

            vb.LayoutTransform = new ScaleTransform(scale, scale);

            pDialog.PrintVisual(vb, "MyViewBox");
        }
Example #28
0
        internal static void printInvoiceA6(Invoice i, int Type)
        {
            try
            {
                var uc = LoadTemplate(Path.Combine(Environment.CurrentDirectory, "InvoiceReportTemplate.xaml")) as UserControl;
                (uc.FindName("txtHeader") as TextBlock).Text = Properties.Settings.Default.VoucherHeaderText;
                var         img    = uc.FindName("img") as Image;
                BitmapImage bitmap = new BitmapImage();
                bitmap.BeginInit();
                bitmap.UriSource = new Uri(Properties.Settings.Default.AssociationLogoPath, UriKind.RelativeOrAbsolute);
                bitmap.EndInit();
                img.Source = bitmap;

                if (Type == 1)
                {
                    uc.DataContext = BaseDataBase._Tabling($@"select Description, Barcode, TotalValue, Serial, Receiver, ReceiverPID, dbo.GetUserByID(LastUserID) UserName, CreateDate, (select Name from Account where ID = {i.Transitions[0].LeftAccount.Id.Value}) SponsorName
                                         from Invoice where Id = {i.ID.Value}");

                    (uc.FindName("grdSponsor") as Grid).Visibility = Visibility.Visible;
                }
                else if (Type == 2)
                {
                    var dv = BaseDataBase._Tabling($@"select Description, Barcode, TotalValue, Serial, Receiver, ReceiverPID, dbo.GetUserByID(LastUserID) UserName, CreateDate from Invoice where Id = {i.ID.Value}");
                    (uc.FindName("icOrphans") as ItemsControl).ItemsSource = BaseDataBase._Tabling($@"select FirstName + ' ' + ISNULL(LastName,'') OrphanName, orphan.Type, Value, Sponsor.Name SponsorName from orphan
                                            inner join Account on Account.Type >= 2 and OwnerID = OrphanID
                                            inner join Transition on InvoiceID = {i.ID.Value} and Account.Id = RightAccount
                                            inner join (select * from Sponsorship where ID in (select Max(ID) from Sponsorship group by OrphanID)) Sponsorship on Sponsorship.OrphanID = Orphan.OrphanID
                                            inner join AvailableSponsorship on AvailableSponsorship.Id = Sponsorship.AvailableSponsorshipID
                                            inner join Sponsor on AvailableSponsorship.SponsorID = Sponsor.SponsorID").DefaultView;

                    uc.DataContext = dv;
                    (uc.FindName("grdOrphan") as Grid).Visibility = Visibility.Visible;
                    var w = new ToWord(decimal.Parse(dv.Rows[0]["TotalValue"].ToString()), new CurrencyInfo(CurrencyInfo.Currencies.Syria));
                    (uc.FindName("TotalValueWord") as TextBlock).Text = w.ConvertToArabic();
                }

                // Create the print dialog object and set options
                PrintDialog pDialog = new PrintDialog();
                pDialog.PageRangeSelection            = PageRangeSelection.AllPages;
                pDialog.UserPageRangeEnabled          = true;
                pDialog.PrintQueue                    = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
                pDialog.PrintTicket                   = pDialog.PrintQueue.DefaultPrintTicket;
                pDialog.PrintTicket.PageScalingFactor = 1;

                System.Printing.PrintCapabilities capabilities = null;
                try
                {
                    capabilities = pDialog.PrintQueue.GetPrintCapabilities(pDialog.PrintTicket);
                }
                catch
                {
                    capabilities = null;
                }
                Viewbox vb = new Viewbox();
                vb.Child = uc;

                System.Windows.Size sz = new Size(520, 380);
                vb.MinWidth  = 1;
                vb.MinHeight = 1;
                vb.Measure(sz);
                vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                double scale = 1;
                vb.LayoutTransform = new ScaleTransform(scale, scale);

                pDialog.PrintVisual(vb, "MyViewBox");
            }
            catch (Exception ex)
            {
                MyMessageBox.Show(ex.Message);
            }
        }
Example #29
0
        internal static void printReportA6(Order o)
        {
            try
            {
                if (o.Type < 3)
                {
                    var uc = LoadTemplate(Path.Combine(Environment.CurrentDirectory, "VoucherReportTemplate.xaml")) as UserControl;
                    uc.DataContext = o;
                    (uc.FindName("Items") as ItemsControl).ItemsSource = from x in o.OIs select new { ItemName = x.Item.Name, Quantity = x.Quantity, StandardUnit = x.Item.StandardUnit };
                    (uc.FindName("txtTag") as TextBlock).Text          = "1/1";
                    (uc.FindName("txtHeader") as TextBlock).Text       = Properties.Settings.Default.VoucherHeaderText;
                    (uc.FindName("grdFamily") as Grid).Visibility      = Visibility.Collapsed;
                    (uc.FindName("grdOrder") as Grid).Visibility       = Visibility.Visible;

                    var         img    = uc.FindName("img") as Image;
                    BitmapImage bitmap = new BitmapImage();
                    bitmap.BeginInit();
                    bitmap.UriSource = new Uri(Properties.Settings.Default.AssociationLogoPath, UriKind.RelativeOrAbsolute);
                    bitmap.EndInit();
                    img.Source = bitmap;

                    // Create the print dialog object and set options
                    PrintDialog pDialog = new PrintDialog();
                    pDialog.PageRangeSelection            = PageRangeSelection.AllPages;
                    pDialog.UserPageRangeEnabled          = true;
                    pDialog.PrintQueue                    = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
                    pDialog.PrintTicket                   = pDialog.PrintQueue.DefaultPrintTicket;
                    pDialog.PrintTicket.PageScalingFactor = 1;

                    System.Printing.PrintCapabilities capabilities = null;
                    try
                    {
                        capabilities = pDialog.PrintQueue.GetPrintCapabilities(pDialog.PrintTicket);
                    }
                    catch
                    {
                        capabilities = null;
                    }
                    Viewbox vb = new Viewbox();
                    vb.Child = uc;

                    System.Windows.Size sz = new Size(520, 380);
                    vb.MinWidth  = 1;
                    vb.MinHeight = 1;
                    vb.Measure(sz);
                    vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                    double scale = 1;
                    vb.LayoutTransform = new ScaleTransform(scale, scale);

                    pDialog.PrintVisual(vb, "MyViewBox");
                }
                else if (o.Type == 3)
                {
                    var dtVoucherCriteria = BaseDataBase._Tabling($@"select IsNull(GroupID,-1) GroupID,Item.Name ItemName, Quantity, StandardUnit from
                                    (select ItemID, Quantity from Order_Item where OrderID = {o.Id}) t1 
                                    inner join Item on t1.ItemID = item.Id
                                    left outer join VoucherCriteria t2
                                    on t1.ItemID = t2.ItemID");
                    if (dtVoucherCriteria != null && dtVoucherCriteria.Rows.Count > 0)
                    {
                        List <DataTable> subTables = dtVoucherCriteria.AsEnumerable().GroupBy(row => row.Field <int>("GroupID")).Select(g => g.CopyToDataTable()).ToList();
                        if (subTables.Count > 1)
                        {
                            MyMessageBox.Show("ستم طباعة " + subTables.Count + " وصل");
                        }

                        var dt = BaseDataBase._Tabling($@"select OrderCode Id,[Order].Barcode, dbo.GetInventory(InventoryID) InventoryName,dbo.fn_getSectorByOrderID([Order].Id) Sector, 
	                            Family.FamilyID FamilyCode, 
	                            case when FatherName is not null then FatherName else (case when MotherName is not null then MotherName else FamilyName end) end as FatherName, 
	                            case when FatherPID is not null then FatherPID else (case when MotherPID is not null then MotherPID else 'لايوجد رقم وطني' end) end as PID, 
	                            NextOrderDate,
                                Date, Users.Name Presenter from [Order]
                                inner join Family on [Order].Id = {o.Id} and Family.FamilyID = [Order].FamilyID
                                inner join Users on Users.Id = [Order].LastUserID 
                                left outer join
                                (select FirstName + ' ' + IsNUll(LastName,'') FatherName ,PID FatherPID, FamilyID from Parent where Gender like N'ذكر') x 
                                on x.FamilyID = [Order].FamilyID
	                            left outer join
	                            (select FirstName + ' ' + IsNUll(LastName,'') MotherName ,PID MotherPID, FamilyID from Parent where Gender like N'أنثى') y 
                                on y.FamilyID = [Order].FamilyID");

                        for (int i = 0; i < subTables.Count; i++)
                        {
                            var uc = LoadTemplate(Path.Combine(Environment.CurrentDirectory, "VoucherReportTemplate.xaml")) as UserControl;
                            uc.DataContext = null;
                            uc.DataContext = dt.DefaultView;
                            (uc.FindName("Items") as ItemsControl).ItemsSource = subTables[i].DefaultView;
                            (uc.FindName("txtTag") as TextBlock).Text          = (i + 1) + "/" + subTables.Count;
                            (uc.FindName("txtHeader") as TextBlock).Text       = Properties.Settings.Default.VoucherHeaderText;

                            var         img    = uc.FindName("img") as Image;
                            BitmapImage bitmap = new BitmapImage();
                            bitmap.BeginInit();
                            bitmap.UriSource = new Uri(Properties.Settings.Default.AssociationLogoPath, UriKind.RelativeOrAbsolute);
                            bitmap.EndInit();
                            img.Source = bitmap;

                            // Create the print dialog object and set options
                            PrintDialog pDialog = new PrintDialog();
                            pDialog.PageRangeSelection            = PageRangeSelection.AllPages;
                            pDialog.UserPageRangeEnabled          = true;
                            pDialog.PrintQueue                    = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
                            pDialog.PrintTicket                   = pDialog.PrintQueue.DefaultPrintTicket;
                            pDialog.PrintTicket.PageScalingFactor = 1;

                            System.Printing.PrintCapabilities capabilities = null;
                            try
                            {
                                capabilities = pDialog.PrintQueue.GetPrintCapabilities(pDialog.PrintTicket);
                            }
                            catch
                            {
                                capabilities = null;
                            }
                            Viewbox vb = new Viewbox();
                            vb.Child = uc;

                            System.Windows.Size sz = new Size(520, 380);
                            vb.MinWidth  = 1;
                            vb.MinHeight = 1;
                            vb.Measure(sz);
                            vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                            double scale = 1;
                            vb.LayoutTransform = new ScaleTransform(scale, scale);

                            pDialog.PrintVisual(vb, "MyViewBox");
                        }
                    }
                }
                else
                {
                    var dtVoucherCriteria = BaseDataBase._Tabling($@"select IsNull(GroupID,-1) GroupID,Item.Name ItemName, Quantity, StandardUnit from
                                    (select ItemID, Quantity from Order_Item where OrderID = {o.Id}) t1 
                                    inner join Item on t1.ItemID = item.Id
                                    left outer join VoucherCriteria t2
                                    on t1.ItemID = t2.ItemID");
                    if (dtVoucherCriteria != null && dtVoucherCriteria.Rows.Count > 0)
                    {
                        List <DataTable> subTables = dtVoucherCriteria.AsEnumerable().GroupBy(row => row.Field <int>("GroupID")).Select(g => g.CopyToDataTable()).ToList();
                        if (subTables.Count > 1)
                        {
                            MyMessageBox.Show("ستم طباعة " + subTables.Count + " وصل");
                        }

                        var dt = BaseDataBase._Tabling($@"select OrderCode Id,[Order].Barcode, dbo.GetInventory(InventoryID) InventoryName,'عائلة خاصة' Sector, SpecialFamily.Id FamilyCode, SpecialFamily.Name FatherName, PID,
                                            Date, Users.Name Presenter from [Order]
                                            inner join SpecialFamily on [Order].Id = {o.Id} and SpecialFamily.Id = [Order].SpecialFamilyID
                                            inner join Users on Users.Id = [Order].LastUserID");


                        for (int i = 0; i < subTables.Count; i++)
                        {
                            var uc = LoadTemplate(Path.Combine(Environment.CurrentDirectory, "VoucherReportTemplate.xaml")) as UserControl;
                            uc.DataContext = null;
                            uc.DataContext = dt;
                            (uc.FindName("Items") as ItemsControl).ItemsSource = subTables[i].DefaultView;
                            (uc.FindName("txtTag") as TextBlock).Text          = (i + 1) + "/" + subTables.Count;
                            (uc.FindName("txtHeader") as TextBlock).Text       = Properties.Settings.Default.VoucherHeaderText;
                            //(uc.FindName("Items") as ItemsControl).ItemsSource = from x in o.OIs select new { ItemName = x.Item.Name, Quantity = x.Quantity, StandardUnit = x.Item.StandardUnit };
                            //(uc.FindName("txtTag") as TextBlock).Text = "1/1";

                            var         img    = uc.FindName("img") as Image;
                            BitmapImage bitmap = new BitmapImage();
                            bitmap.BeginInit();
                            bitmap.UriSource = new Uri(Properties.Settings.Default.AssociationLogoPath, UriKind.RelativeOrAbsolute);
                            bitmap.EndInit();
                            img.Source = bitmap;

                            // Create the print dialog object and set options
                            PrintDialog pDialog = new PrintDialog();
                            pDialog.PageRangeSelection            = PageRangeSelection.AllPages;
                            pDialog.UserPageRangeEnabled          = true;
                            pDialog.PrintQueue                    = System.Printing.LocalPrintServer.GetDefaultPrintQueue();
                            pDialog.PrintTicket                   = pDialog.PrintQueue.DefaultPrintTicket;
                            pDialog.PrintTicket.PageScalingFactor = 1;

                            System.Printing.PrintCapabilities capabilities = null;
                            try
                            {
                                capabilities = pDialog.PrintQueue.GetPrintCapabilities(pDialog.PrintTicket);
                            }
                            catch
                            {
                                capabilities = null;
                            }
                            Viewbox vb = new Viewbox();
                            vb.Child = uc;

                            System.Windows.Size sz = new Size(520, 380);
                            vb.MinWidth  = 1;
                            vb.MinHeight = 1;
                            vb.Measure(sz);
                            vb.Arrange(new System.Windows.Rect(new System.Windows.Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));

                            double scale = 1;
                            vb.LayoutTransform = new ScaleTransform(scale, scale);

                            pDialog.PrintVisual(vb, "MyViewBox");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MyMessageBox.Show(ex.Message);
            }
        }