Exemplo n.º 1
0
        /// <summary>
        /// Prints a MetaFile
        /// </summary>
        /// <param name="meta">MetaFile to print</param>
        override public bool Print(MetaFile meta)
        {
            bool            aresult     = false;
            WMFOptimization oldoptimize = OptimizeWMF;

            try
            {
                bool olddrawfound = DrawFound;
                try
                {
                    OptimizeWMF = WMFOptimization.None;
                    if (PreparePrint(meta))
                    {
                        try
                        {
                            doc.Print();
                            aresult = true;
                        }
                        finally
                        {
                            doc = null;
                        }
                    }
                }
                finally
                {
                    DrawFound = olddrawfound;
                }
            }
            finally
            {
                OptimizeWMF = oldoptimize;
            }
            return(aresult);
        }
Exemplo n.º 2
0
        private void DoInit()
        {
#if REPMAN_COMPACT
#else
            OptimizeWMF = WMFOptimization.None;
#endif
            prdriver            = new PrintOutNet();
            image               = new PictureBox();
            image.MouseDown    += new MouseEventHandler(MyMouseDown);
            image.Parent        = this;
            FBitmap             = new System.Drawing.Bitmap(10, 10);
            prdriver.Output     = FBitmap;
            FEntirePageCount    = 1;
            aparams             = new Object[3];
            this.ParentChanged += new EventHandler(MyParentChanged);
#if REPMAN_COMPACT
            BackColor            = System.Drawing.SystemColors.ControlDark;
            MyAutoScrollPosition = new Point(0, 0);
            dpix = PrintOutNet.DEFAULT_RESOLUTION;
            dpiy = PrintOutNet.DEFAULT_RESOLUTION;
#else
            Graphics gr = this.CreateGraphics();
            try
            {
                dpix = (int)gr.DpiX;
                dpiy = (int)gr.DpiY;
            }
            finally
            {
                gr.Dispose();
            }
            resizeevent = new LayoutEventHandler(MyResizeHandler);
            Layout     += resizeevent;
#endif
            image.Image   = FBitmap;
            image.Top     = 0;
            image.Left    = 0;
            FPreviewScale = 1.0F;
#if REPMAN_COMPACT
            FBarWidth  = 0;
            FBarHeight = 0;
#else
            FBarWidth  = System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
            FBarHeight = System.Windows.Forms.SystemInformation.HorizontalScrollBarHeight;
#endif
        }
Exemplo n.º 3
0
        /// <summary>
        /// Process a MetaFile, printing or previewing
        /// </summary>
        /// <param name="meta">MetaFile to print</param>
        override public bool Print(MetaFile meta)
        {
            overridedriver = null;
            DrawFound      = (FPreview && (!SystemPreview));

            if (!FPreview)
            {
                // Get printer data so it can be a dot matrix print option
                string drivername = PrinterConfig.GetDriverName(meta.PrinterSelect);
                if (drivername.Length > 0)
                {
                    using (PrintOutText ntextdriver = new PrintOutText())
                    {
                        ntextdriver.ForceDriverName = drivername;
                        overridedriver = ntextdriver;
                        if (PreparePrint(meta))
                        {
                            bool doprint = true;
                            if (ShowPrintDialog)
                            {
                                using (PrintDialog pdia = new PrintDialog())
                                {
                                    pdia.ShowHelp       = true;
                                    pdia.ShowNetwork    = true;
                                    pdia.AllowSomePages = true;
                                    // bug from Microsoft not showing dialog
                                    pdia.UseEXDialog = true;
                                    pdia.Document    = doc;
                                    DialogResult aresult = pdia.ShowDialog();
                                    doprint = aresult == DialogResult.OK;
                                }
                            }
                            if (doprint)
                            {
                                ntextdriver.Print(meta);
                                NewDocument(meta);

                                string atext = ntextdriver.PrintResult.ToString();
                                //MessageBox.Show("Blank lines:"+ntextdriver.blanklines.ToString());
                                if (atext.Length > 0)
                                {
                                    FBlackLines = FBlackLines + ntextdriver.blacklines;
                                    FWhiteLines = FWhiteLines + ntextdriver.whitelines;

                                    RawPrinterHelper.SendStringToPrinter(doc.PrinterSettings.PrinterName, atext);
                                    return(true);
                                }
                                EndDocument(meta);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                    }
                }
            }



            bool            nresult         = false;
            WMFOptimization oldoptimization = OptimizeWMF;

            try
            {
                DisableForwardOnly = false;
                if (!Preview)
                {
                    OptimizeWMF = WMFOptimization.None;
                }
                else
                {
                    // For preview, the metafile must save all pages
                    if (!SystemPreview)
                    {
                        DisableForwardOnly = true;
                    }
                }
                if (PreparePrint(meta))
                {
                    bool doprint = true;
                    if (ShowPrintDialog)
                    {
                        using (PrintDialog pdia = new PrintDialog())
                        {
                            // Bug from microsft not showing dialog in 64bit machines
                            pdia.UseEXDialog    = true;
                            pdia.ShowHelp       = true;
                            pdia.ShowNetwork    = true;
                            pdia.AllowSomePages = true;
                            pdia.Document       = doc;
                            DialogResult aresult = pdia.ShowDialog();
                            doprint = aresult == DialogResult.OK;
                        }
                    }
                    if (doprint)
                    {
                        if (!Preview)
                        {
                            meta.ForwardOnly = true;
                            try
                            {
                                doc.Print();
                            }
                            catch (Exception E)
                            {
                                string printername = doc.PrinterSettings.PrinterName;
                                throw new Exception("Printer error: " + printername + " " + E.Message);
                            }
                        }
                        else
                        {
#if REPMAN_NOPREVIEW
                            throw new Exception("Feature PrintPreviewDialog not supported");
#else
                            if (SystemPreview)
                            {
                                using (PrintPreviewDialog previewdia = new PrintPreviewDialog())
                                {
                                    previewdia.Document = doc;
                                    previewdia.ShowDialog();
                                }
                            }
                            else
                            {
                                if (previewmetafile != null)
                                {
                                    previewmetafile.Dispose();
                                    previewmetafile = null;
                                }
                                previewmetafile = new PreviewMetaFile();
                                SetReportEvents();
                                previewmetafile.OptimizeWMF = OptimizeWMF;
                                previewmetafile.MetaFile    = meta;
                                previewmetafile.SetDriver(this);
                                PreviewWindow.WindowMode    = WindowMode;
                                PreviewWindow.ShowInTaskbar = ShowInTaskbar;
                                PreviewWindow.LargeButtons  = LargeButtons;
                                PreviewWindow.PreviewReport(previewmetafile);
                            }
#endif
                        }
                        nresult = true;
                    }
                }
            }
            finally
            {
                OptimizeWMF = oldoptimization;
            }
            return(nresult);
        }