예제 #1
0
        private void Print_Badge(object sender, RoutedEventArgs e)
        {
            PrintPreviewDialog pdi = new PrintPreviewDialog();

            //Position de la fenêtre de preview
            //pdi.DesktopLocation = new System.Drawing.Point(0, 0);
            //var locatrion = pdi.Lo
            pdi.Name = "PrintPreviewDialog1";

            BadgeEventSet defaultBadge = this._badgeVM.GetDefaultBadge();

            pdi.ClientSize = new System.Drawing.Size((int)defaultBadge.BadgeSet.Dimension_X, (int)defaultBadge.BadgeSet.Dimension_Y);
            if (defaultBadge == null)
            {
                System.Windows.MessageBox.Show("Please configure a default print in badge settings");
                return;
            }

            PrintDocument printDocument = new PrintDocument();

            printDocument.DefaultPageSettings.PaperSize = new PaperSize("Template",
                                                                        Convert.ToInt32(defaultBadge.BadgeSet.Dimension_X * MM_PX),
                                                                        Convert.ToInt32(defaultBadge.BadgeSet.Dimension_Y * MM_PX));
            printDocument.OriginAtMargins = true;



            printDocument.PrintPage += (sender2, e2) => document_PrintPage(sender2, e2, defaultBadge);
            RectangleF rec    = printDocument.PrinterSettings.DefaultPageSettings.PrintableArea;
            float      rightY = rec.Right;

            pdi.Document             = printDocument;
            pdi.Document.BeginPrint += new PrintEventHandler(end_print);
            //pdi.PrintPreviewControl.Zoom = 1;
            Margins margins = new Margins(10, 10, 10, 10);

            printDocument.DefaultPageSettings.Margins = margins;
            pdi.ShowDialog();
            if (isPrinted)
            {
                this._badgeVM.SaveOnPrintBadge(this._currentUser[0].UserID_User);
            }
        }