示例#1
0
        private void marginChange_Click(object sender, EventArgs e)
        {
            controller.HandleExceptions(
                delegate {
                UpdateSettings();
                Margins originalMargins = settings.PageSettings.Margins;

                if (RegionInfo.CurrentRegion.IsMetric)         // work around bug
                {
                    settings.PageSettings.Margins = PrinterUnitConvert.Convert(settings.PageSettings.Margins, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
                }

                pageSetupDialog.PageSettings    = settings.PageSettings;
                pageSetupDialog.PrinterSettings = settings.PageSettings.PrinterSettings;

                DialogResult result = pageSetupDialog.ShowDialog(this);
                if (result == DialogResult.OK)
                {
                    settings.PageSettings = pageSetupDialog.PageSettings;
                    UpdateDialog();
                }
                else
                {
                    settings.PageSettings.Margins = originalMargins;
                }
            }
                );
        }
        private static void UpdateSettings(System.Windows.Forms.NativeMethods.PAGESETUPDLG data, System.Drawing.Printing.PageSettings pageSettings, System.Drawing.Printing.PrinterSettings printerSettings)
        {
            System.Windows.Forms.IntSecurity.AllPrintingAndUnmanagedCode.Assert();
            try
            {
                pageSettings.SetHdevmode(data.hDevMode);
                if (printerSettings != null)
                {
                    printerSettings.SetHdevmode(data.hDevMode);
                    printerSettings.SetHdevnames(data.hDevNames);
                }
            }
            finally
            {
                CodeAccessPermission.RevertAssert();
            }
            Margins margins = new Margins {
                Left   = data.marginLeft,
                Top    = data.marginTop,
                Right  = data.marginRight,
                Bottom = data.marginBottom
            };
            PrinterUnit fromUnit = ((data.Flags & 8) != 0) ? PrinterUnit.HundredthsOfAMillimeter : PrinterUnit.ThousandthsOfAnInch;

            pageSettings.Margins = PrinterUnitConvert.Convert(margins, fromUnit, PrinterUnit.Display);
        }
示例#3
0
        private void btnPrintSetup_Click(object sender, EventArgs e)
        {
            try
            {
                PageSetupDialog psd = new PageSetupDialog();
                psd.Document             = _printdocument;
                psd.PageSettings.Margins = PrinterUnitConvert.Convert(psd.PageSettings.Margins,
                                                                      PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);

                if (psd.ShowDialog() == DialogResult.OK)
                {
                    _printdocument.Print();
                }
                else
                {
                    psd.PageSettings.Margins = PrinterUnitConvert.Convert(psd.PageSettings.Margins,
                                                                          PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmPosPrintPreview));
                MessageDxUtil.ShowError(ex.Message);
            }
        }
示例#4
0
        void comboBox_Papers_DrawItem(object sender, DrawItemEventArgs e)
        {
            ComboBox comboBox = sender as ComboBox;

            if (e.Index == -1 || e.Index >= comboBox.Items.Count)
            {
                return;
            }

            e.DrawBackground();

            if ((e.State & DrawItemState.Focus) != 0)
            {
                e.DrawFocusRectangle();
            }
            Brush b = null;

            try
            {
                System.Drawing.Printing.PaperSize size = comboBox.Items[e.Index] as System.Drawing.Printing.PaperSize;
                double Width  = Convert.ToDouble(PrinterUnitConvert.Convert(size.Width * 1.0, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter) / 100.0);
                double Height = Convert.ToDouble(PrinterUnitConvert.Convert(size.Height * 1.0, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter) / 100.0);

                b = new SolidBrush(e.ForeColor);
                e.Graphics.DrawString(string.Format("{0} [{1}ÀåÃסÁ{2}ÀåÃ×]", size.PaperName, Width, Height), new Font(comboBox.Items[e.Index].ToString(), 10F), b, e.Bounds);
            }
            finally
            {
                if (b != null)
                {
                    b.Dispose();
                }
                b = null;
            }
        }
        public void Restore(System.Drawing.Printing.PageSettings a_settings)
        {
            Margins margins = new Margins(MarginLeft, MarginRight, MarginTop, MarginBottom);

            margins = PrinterUnitConvert.Convert(margins,
                                                 PrinterUnit.TenthsOfAMillimeter, PrinterUnit.HundredthsOfAMillimeter);
            a_settings.Margins = margins;

            a_settings.Landscape = Landscape;

            foreach (PaperSize paper_size in a_settings.PrinterSettings.PaperSizes)
            {
                if (paper_size.PaperName == PaperSizeName)
                {
                    a_settings.PaperSize = paper_size;
                }
            }

            foreach (PaperSource printer_source in a_settings.PrinterSettings.PaperSources)
            {
                if (printer_source.SourceName == PaperSourceName)
                {
                    a_settings.PaperSource = printer_source;
                }
            }
        }
示例#6
0
 public Document(string title, Ganres ganre, Langs lang, DateTime publish, string pathToFile, Font font = null, PageSettings pg_settings = null)
 {
     DocumentName    = title;
     Ganre           = ganre;
     Lang            = lang;
     DateOfPublished = publish;
     _pages          = new List <PageContent>();
     if (pg_settings != null)
     {
         DefaultPageSettings = pg_settings;
     }
     else
     {
         DefaultPageSettings.PaperSize    = PaperStandards.GetSizeByName("A5");
         DefaultPageSettings.Landscape    = false;
         DefaultPageSettings.Margins.Left = PrinterUnitConvert.Convert(200, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display);
         int short_margin = PrinterUnitConvert.Convert(100, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display);
         DefaultPageSettings.Margins.Top = DefaultPageSettings.Margins.Bottom = DefaultPageSettings.Margins.Right = short_margin;
     }
     if (font != null)
     {
         _font = font;
     }
     else
     {
         _font = new Font("Arial", 14);
     }
     _storageReader = new StorageReader(pathToFile);
     _storageReader.eventHandler += OnReadLine;
     _storageReader.read_line();
 }
示例#7
0
        static void Main(string[] args)
        {
            _keyPressed += Program.OnKeyPressed;
            //Console.SetWindowSize(Console.LargestWindowWidth, Console.LargestWindowHeight);
            PageSettings pageSettings = new PageSettings();

            pageSettings.PaperSize    = PaperStandards.GetSizeByName("A4");
            pageSettings.Landscape    = false;
            pageSettings.Margins.Left = PrinterUnitConvert.Convert(200, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display);
            int short_margin = PrinterUnitConvert.Convert(100, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display);

            pageSettings.Margins.Top = pageSettings.Margins.Bottom = pageSettings.Margins.Right = short_margin;

            _bk = new Book("Якийсь там title", Ganres.DETECTIVE, Langs.ru_RU, DateTime.Now, @"book_01.txt", new Font("Arial", 14), pageSettings);
            _bk.StorageUpdatedEvent += page_count =>
            {
                if (_currentPage == -1)
                {
                    _currentPage = 0;
                    Console.Clear();
                    _bk.show(_currentPage);
                }
                _ReadPagesCount = page_count;
            };

            while (!_exit)
            {
                if (Console.KeyAvailable)
                {
                    _keyPressed(Console.ReadKey(true));
                }
            }
        }
示例#8
0
        /// <summary>
        /// 打开“页面设置”对话框
        /// </summary>
        public void OpenPageSetupDialog()
        {
            // 设置打印页的默认设置
            printDocument.DefaultPageSettings = pageSetupDialog.PageSettings;
            // 设置页面设置对话框关联的打印对象
            pageSetupDialog.Document = printDocument;

            // 是否启用对话框的边距部分
            pageSetupDialog.AllowMargins     = true;
            // 是否启用对话框的“横、纵向”打印
            pageSetupDialog.AllowOrientation = true;
            // 是否启用对话框的纸张部分
            pageSetupDialog.AllowPaper       = true;
            // 是否启用“打印机”按钮
            pageSetupDialog.AllowPrinter     = true;
            // 默认“纵向”
            pageSetupDialog.PageSettings.Landscape = false;

            try 
            { 
                // 显示“页面设置”对话框
                pageSetupDialog.ShowDialog();
            }
            catch(Exception e)
            {
                throw new Exception(e.Message);
            }
           
            if (System.Globalization.RegionInfo.CurrentRegion.IsMetric)
            {
                // 设置页边距
                pageSetupDialog.PageSettings.Margins = PrinterUnitConvert.Convert(pageSetupDialog.PageSettings.Margins, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
            }
        }
示例#9
0
        internal void ShowPageSetupDialog(IWin32Window owner)
        {
            PageSetupDialog pageSetupDialog = new PageSetupDialog();

            pageSetupDialog.PrinterSettings = m_printerSettings;
            pageSetupDialog.PageSettings    = m_pageSettings;
            pageSetupDialog.AllowMargins
                    = pageSetupDialog.AllowOrientation
                    = pageSetupDialog.AllowPaper
                    = pageSetupDialog.AllowPrinter = true;
            pageSetupDialog.Document = m_printDocument;

            // handle .NET measurement bug
            Margins originalMargins = m_printDocument.DefaultPageSettings.Margins;

            if (System.Globalization.RegionInfo.CurrentRegion.IsMetric)
            {
                m_printDocument.DefaultPageSettings.Margins = PrinterUnitConvert.Convert(
                    m_printDocument.DefaultPageSettings.Margins, PrinterUnit.Display,
                    PrinterUnit.TenthsOfAMillimeter);
            }

            if (pageSetupDialog.ShowDialog(owner) != DialogResult.OK)
            {
                m_printDocument.DefaultPageSettings.Margins = originalMargins;
            }
        }
示例#10
0
        public void print(BarEntity entity)
        {
            this.entity = entity;

            printDocument.DefaultPageSettings.Landscape = true;



            printDocument.PrinterSettings.Copies = 1;


            int width = PrinterUnitConvert.Convert(100, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);

            pwidth = width;
            int height = PrinterUnitConvert.Convert(36, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);



            // System.Windows.Forms.MessageBox.Show(height + "" + width);
            // printDocument.PrinterSettings.DefaultPageSettings.PaperSize.Width = width;


            // printDocument.PrinterSettings.DefaultPageSettings.PaperSize.Height = height;

            printDocument.PrintPage += new PrintPageEventHandler(printHandler);


            printDocument.Print();
        }
示例#11
0
        private static void UpdateSettings(NativeMethods.PAGESETUPDLG data, PageSettings pageSettings,
                                           PrinterSettings printerSettings)
        {
            // SetHDevMode demands AllPrintingAndUnmanagedCode Permission : Since we are calling that function we should Assert the permision,
            IntSecurity.AllPrintingAndUnmanagedCode.Assert();
            try
            {
                pageSettings.SetHdevmode(data.hDevMode);
                if (printerSettings != null)
                {
                    printerSettings.SetHdevmode(data.hDevMode);
                    printerSettings.SetHdevnames(data.hDevNames);
                }
            }
            finally
            {
                CodeAccessPermission.RevertAssert();
            }

            Margins newMargins = new Margins();

            newMargins.Left   = data.marginLeft;
            newMargins.Top    = data.marginTop;
            newMargins.Right  = data.marginRight;
            newMargins.Bottom = data.marginBottom;

            PrinterUnit fromUnit = ((data.Flags & NativeMethods.PSD_INHUNDREDTHSOFMILLIMETERS) != 0)
                                   ? PrinterUnit.HundredthsOfAMillimeter
                                   : PrinterUnit.ThousandthsOfAnInch;

            pageSettings.Margins = PrinterUnitConvert.Convert(newMargins, fromUnit, PrinterUnit.Display);
        }
示例#12
0
        private static double GetScale(XSize size)
        {
            var wm    = PrinterUnitConvert.Convert(size.Width, PrinterUnit.Display, PrinterUnit.HundredthsOfAMillimeter) / 100;
            var wx    = new XUnit(wm, XGraphicsUnit.Millimeter);
            var scale = size.Width / wx.Point;

            return(scale);
        }
示例#13
0
        /// <summary>
        /// 报表边距...
        /// </summary>
        /// <param name="mrg"></param>
        /// <returns></returns>
        public static Margins GetRegionMargins(Margins mrg)
        {
            Margins reg = mrg.Clone() as Margins;

            return(System.Globalization.RegionInfo.CurrentRegion.IsMetric ?
                   PrinterUnitConvert.Convert(reg, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display) :
                   reg);
        }
示例#14
0
        /// <summary>
        /// Convert paper size from unit to unit
        /// </summary>
        /// <param name="paperSize">Paper size to convert</param>
        /// <param name="source">Source unit</param>
        /// <param name="dest">Dest unit</param>
        /// <returns>Paper size converted</returns>
        public static PaperSize Convert(PaperSize paperSize, PrinterUnit source, PrinterUnit dest)
        {
            int       w   = PrinterUnitConvert.Convert(paperSize.Width, source, dest);
            int       h   = PrinterUnitConvert.Convert(paperSize.Height, source, dest);
            PaperSize ret = new PaperSize(paperSize.PaperName, w, h);

            ret.RawKind = paperSize.RawKind;
            return(ret);
        }
示例#15
0
        /// <summary>
        /// Convert rectangle from unit to unit
        /// </summary>
        /// <param name="r">Rectangle to convert</param>
        /// <param name="source">Source unit</param>
        /// <param name="dest">Dest unit</param>
        /// <returns>Rectangle converted</returns>
        public static RectangleF Convert(RectangleF r, PrinterUnit source, PrinterUnit dest)
        {
            float l = (float)PrinterUnitConvert.Convert(r.Left, source, dest);
            float t = (float)PrinterUnitConvert.Convert(r.Top, source, dest);
            float w = (float)PrinterUnitConvert.Convert(r.Width, source, dest);
            float h = (float)PrinterUnitConvert.Convert(r.Height, source, dest);

            return(new RectangleF(l, t, w, h));
        }
示例#16
0
        private static XSize GetSize(XSize rawSize)
        {
            var wm       = PrinterUnitConvert.Convert(rawSize.Width, PrinterUnit.Display, PrinterUnit.HundredthsOfAMillimeter) / 100;
            var wx       = new XUnit(wm, XGraphicsUnit.Millimeter);
            var hm       = PrinterUnitConvert.Convert(rawSize.Height, PrinterUnit.Display, PrinterUnit.HundredthsOfAMillimeter) / 100;
            var hx       = new XUnit(hm, XGraphicsUnit.Millimeter);
            var unitSize = new XSize(wx, hx);

            return(unitSize);
        }
示例#17
0
        private void btnPrintSetup_Click(object sender, EventArgs e)
        {
            PageSetupDialog dialog = new PageSetupDialog {
                Document = this.multipadPrintDocument_0
            };

            dialog.PageSettings.Margins = PrinterUnitConvert.Convert(dialog.PageSettings.Margins, PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                this.multipadPrintDocument_0.Print();
            }
            else
            {
                dialog.PageSettings.Margins = PrinterUnitConvert.Convert(dialog.PageSettings.Margins, PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);
            }
        }
示例#18
0
        private void btnPageSetting_Click(object sender, EventArgs e)
        {
            PageSetupDialog psd = new PageSetupDialog();

            psd.Document     = batchPrintDocument;
            psd.AllowPrinter = true;
            if (DialogResult.OK == psd.ShowDialog())
            {
                #region 修复.Net Pagesetup的Bug,把百万分之一英寸改为十分之一毫米
                psd.PageSettings.Margins.Top    = PrinterUnitConvert.Convert(psd.PageSettings.Margins.Top, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
                psd.PageSettings.Margins.Bottom = PrinterUnitConvert.Convert(psd.PageSettings.Margins.Bottom, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
                psd.PageSettings.Margins.Left   = PrinterUnitConvert.Convert(psd.PageSettings.Margins.Left, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
                psd.PageSettings.Margins.Right  = PrinterUnitConvert.Convert(psd.PageSettings.Margins.Right, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
                #endregion
            }
        }
        public void Save(System.Drawing.Printing.PageSettings a_settings)
        {
            Margins margins = PrinterUnitConvert.Convert(a_settings.Margins,
                                                         PrinterUnit.ThousandthsOfAnInch, PrinterUnit.TenthsOfAMillimeter);

            MarginLeft   = margins.Left;
            MarginRight  = margins.Right;
            MarginTop    = margins.Top;
            MarginBottom = margins.Bottom;

            Landscape       = a_settings.Landscape;
            PaperSizeName   = a_settings.PaperSize.PaperName;
            PaperSourceName = a_settings.PaperSource.SourceName;

            Config.Instance.Save();
        }
示例#20
0
        private void 页面设置ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PrintDocument myDoc = new PrintDocument();

            PageSetupDialog dia = new PageSetupDialog();

            dia.PageSettings         = (PageSettings)myDoc.DefaultPageSettings.Clone();
            dia.PageSettings.Margins = PrinterUnitConvert.Convert(dia.PageSettings.Margins, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);

            dia.AllowMargins = true;
            dia.AllowPaper   = true;
            dia.AllowPrinter = true;

            if (dia.ShowDialog() == DialogResult.OK)
            {
                myDoc.DefaultPageSettings = dia.PageSettings;
            }
        }
示例#21
0
        private void btnPageSetup_Click(object sender, EventArgs e)
        {
            Margins originalMargins = pageSetupDialog.PageSettings.Margins;

            if (RegionInfo.CurrentRegion.IsMetric && !MonoHelper.IsRunningOnMono)
            {
                pageSetupDialog.PageSettings.Margins = PrinterUnitConvert.Convert(pageSetupDialog.PageSettings.Margins, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
            }

            if (pageSetupDialog.ShowDialog( ) == DialogResult.OK)
            {
                printPreview.InvalidatePreview( );
            }
            else
            {
                pageSetupDialog.PageSettings.Margins = originalMargins;
            }
        }
示例#22
0
        private void btnPageSetup_Click(object sender, EventArgs e)
        {
            Margins originalMargins = pageSetupDialog.PageSettings.Margins;

            if (System.Globalization.RegionInfo.CurrentRegion.IsMetric &&
                !MonoHelper.IsRunningOnMono)
            {
                // This is necessary because of a bug in PageSetupDialog control.
                // More information: http://support.microsoft.com/?id=814355
                pageSetupDialog.PageSettings.Margins = PrinterUnitConvert.Convert(
                    pageSetupDialog.PageSettings.Margins,
                    PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
            }

            if (pageSetupDialog.ShowDialog() != DialogResult.OK)
            {
                pageSetupDialog.PageSettings.Margins = originalMargins;
            }

            printPreview.InvalidatePreview();
        }
示例#23
0
        /// <summary>
        ///		Show the standard page setup dialog box that lets the user specify
        ///		margins, page orientation, page sources, and paper sizes.
        /// </summary>
        public DialogResult PageSetup()
        {
            PageSetupDialog m_setupDlg = new PageSetupDialog();

            m_setupDlg.Document = m_printDoc;

            m_setupDlg.PageSettings.Margins = PrinterUnitConvert.Convert(m_setupDlg.PageSettings.Margins,
                                                                         PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);
            DialogResult result = m_setupDlg.ShowDialog();

            if (result == DialogResult.OK)
            {
                Print();
            }
            else
            {
                m_setupDlg.PageSettings.Margins = PrinterUnitConvert.Convert(m_setupDlg.PageSettings.Margins,
                                                                             PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);
            }
            return(result);
        }
示例#24
0
 protected override void Draw(PointF pointF_0, Graphics graphics_0, bool bool_0)
 {
     if ((base._isPrint && (this.DataBind != string.Empty)) && !string.IsNullOrEmpty(this.PrintText))
     {
         RectangleF rect = new RectangleF(base.absoluteLocation, (SizeF) new Size((int)base.Width, (int)base.Height));
         AsHSEncode.ASHS_CODEINFO ashs_codeinfo = new AsHSEncode.ASHS_CODEINFO {
             pData1        = this.GetStrPtr(this._Data1),
             pData2        = this.GetStrPtr(this._Data2),
             pData3        = this.GetStrPtr(this._Data3),
             pData4        = this.GetStrPtr(this._Data4),
             dwDataLength1 = this._Data1.Length,
             dwDataLength2 = this._Data2.Length,
             dwDataLength3 = this._Data3.Length,
             dwDataLength4 = this._Data4.Length,
             nEccelvel     = 2,
             nVersion      = 11,
             nNarrow       = 0x683,
             nadjBwc       = 0x22c
         };
         int num  = (int)PrinterUnitConvert.Convert((double)(rect.X * 10f), PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);
         int num2 = (int)PrinterUnitConvert.Convert((double)(rect.Y * 10f), PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);
         ashs_codeinfo.nPageLeft     = num;
         ashs_codeinfo.nPageTop      = num2;
         ashs_codeinfo.nPosX         = 0;
         ashs_codeinfo.nPosY         = 0;
         ashs_codeinfo.nSymbolSpace  = 100;
         ashs_codeinfo.szPrinterName = string.Empty;
         string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), DateTime.Now.ToString("yyyyMMddHHmmssfff"));
         ashs_codeinfo.szJPEGFilePathName = path;
         AsHSEncode.HS_CreateJPEGFile(ref ashs_codeinfo);
         AsHSEncode.HS_CreateJPEGHandle(ref ashs_codeinfo);
         Image image = Image.FromFile(ashs_codeinfo.szJPEGFilePathName);
         graphics_0.DrawImage(image, rect);
         Point   point  = new Point((int)(this.absoluteLocation.X - 2f), (int)this.absoluteLocation.Y);
         Point[] points = new Point[] { new Point(point.X + 0x142, point.Y), new Point(point.X + 0x138, point.Y + 12), new Point(point.X + 0x142, point.Y + 0x18), new Point(point.X + 0x138, point.Y + 0x24), new Point(point.X + 0x142, point.Y + 0x30), new Point(point.X + 0x138, point.Y + 60), new Point(point.X + 0x142, point.Y + 0x48) };
         graphics_0.DrawLines(new Pen(Color.Black), points);
         image.Dispose();
         File.Delete(path);
     }
 }
示例#25
0
        public void ConvertFromDisplay()
        {
            r = PrinterUnitConvert.Convert(n, PrinterUnit.Display,
                                           PrinterUnit.Display);

            Assert.AreEqual(100, r, "CFD#1");

            r = PrinterUnitConvert.Convert(n, PrinterUnit.Display,
                                           PrinterUnit.HundredthsOfAMillimeter);

            Assert.AreEqual(2540, r, "CFD#2");

            r = PrinterUnitConvert.Convert(n, PrinterUnit.Display,
                                           PrinterUnit.TenthsOfAMillimeter);

            Assert.AreEqual(254, r, "CFD#3");

            r = PrinterUnitConvert.Convert(n, PrinterUnit.Display,
                                           PrinterUnit.ThousandthsOfAnInch);

            Assert.AreEqual(1000, r, "CFD#4");
        }
示例#26
0
        public void ConvertFromTenthsOfAMillimeter()
        {
            r = PrinterUnitConvert.Convert(n, PrinterUnit.TenthsOfAMillimeter,
                                           PrinterUnit.Display);

            Assert.AreEqual(39, r, "CFT#1");

            r = PrinterUnitConvert.Convert(n, PrinterUnit.TenthsOfAMillimeter,
                                           PrinterUnit.HundredthsOfAMillimeter);

            Assert.AreEqual(1000, r, "CFT#2");

            r = PrinterUnitConvert.Convert(n, PrinterUnit.TenthsOfAMillimeter,
                                           PrinterUnit.TenthsOfAMillimeter);

            Assert.AreEqual(100, r, "CFT#3");

            r = PrinterUnitConvert.Convert(n, PrinterUnit.TenthsOfAMillimeter,
                                           PrinterUnit.ThousandthsOfAnInch);

            Assert.AreEqual(394, r, "CFT#4");
        }
示例#27
0
        protected virtual PageSettings ShowPageSetupDialog(System.Drawing.Printing.PrintDocument printDocument_1)
        {
            this.ThrowPrintDocumentNullException(printDocument_1);
            PageSettings    defaultPageSettings = new PageSettings();
            PageSetupDialog dialog = new PageSetupDialog();

            defaultPageSettings = printDocument_1.DefaultPageSettings;
            try
            {
                dialog.Document = printDocument_1;
                Margins margins = printDocument_1.DefaultPageSettings.Margins;
                if (RegionInfo.CurrentRegion.IsMetric)
                {
                    margins = PrinterUnitConvert.Convert(margins, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
                }
                PageSettings settings2 = (PageSettings)printDocument_1.DefaultPageSettings.Clone();
                dialog.PageSettings         = settings2;
                dialog.PageSettings.Margins = margins;
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    defaultPageSettings = dialog.PageSettings;
                    printDocument_1.DefaultPageSettings = dialog.PageSettings;
                }
            }
            catch (InvalidPrinterException exception)
            {
                this.ShowInvalidPrinterException(exception);
            }
            catch (Exception exception2)
            {
                this.ShowPrinterException(exception2);
            }
            finally
            {
                dialog.Dispose();
                dialog = null;
            }
            return(defaultPageSettings);
        }
示例#28
0
        private static void UpdateSettings(NativeMethods.PAGESETUPDLG data, PageSettings pageSettings,
                                           PrinterSettings printerSettings)
        {
            pageSettings.SetHdevmode(data.hDevMode);
            if (printerSettings != null)
            {
                printerSettings.SetHdevmode(data.hDevMode);
                printerSettings.SetHdevnames(data.hDevNames);
            }

            Margins newMargins = new Margins();

            newMargins.Left   = data.marginLeft;
            newMargins.Top    = data.marginTop;
            newMargins.Right  = data.marginRight;
            newMargins.Bottom = data.marginBottom;

            PrinterUnit fromUnit = ((data.Flags & NativeMethods.PSD_INHUNDREDTHSOFMILLIMETERS) != 0)
                                   ? PrinterUnit.HundredthsOfAMillimeter
                                   : PrinterUnit.ThousandthsOfAnInch;

            pageSettings.Margins = PrinterUnitConvert.Convert(newMargins, fromUnit, PrinterUnit.Display);
        }
示例#29
0
        private void btnPrintSetup_Click(object sender, EventArgs e)
        {
            try
            {
                PageSetupDialog psd = new PageSetupDialog();
                psd.Document             = _printdocument;
                psd.PageSettings.Margins = PrinterUnitConvert.Convert(psd.PageSettings.Margins,
                                                                      PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);

                if (psd.ShowDialog() == DialogResult.OK)
                {
                    _printdocument.Print();
                }
                else
                {
                    psd.PageSettings.Margins = PrinterUnitConvert.Convert(psd.PageSettings.Margins,
                                                                          PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);
                }
            }
            catch (Exception ex)
            {
                MessageDxUtil.ShowError(ex.Message);
            }
        }
示例#30
0
        public BcPrintDocument(AxBarCodeWiz bc, BcProject project)
        {
            this.bc             = bc;
            DefaultPageSettings = project.pageSettings;
            table = project.table;
            data  = project.data;
            project.state.ApplyState(bc);
            xDist          = project.layout.xDist;
            yDist          = project.layout.yDist;
            title          = project.layout.title;
            titleFont      = project.layout.titleFont;
            printTitleOnce = project.layout.printTitleOnce;
            bs             = new BindingSource();
            bs.DataSource  = table;
            bs.Sort        = data.sort;
            MarginsConverter mc = new MarginsConverter();

            xDist = (float)PrinterUnitConvert.Convert(xDist * 10,
                                                      PrinterUnit.TenthsOfAMillimeter,
                                                      PrinterUnit.Display);
            yDist = (float)PrinterUnitConvert.Convert(yDist * 10,
                                                      PrinterUnit.TenthsOfAMillimeter,
                                                      PrinterUnit.Display);
        }