예제 #1
0
        /// <summary>
        /// Updates the instance of printer settings according to properties of the XmlPaper.
        /// </summary>
        public void UpdatePageSettings(PrinterSettings settings)
        {
            var size = PaperSizes.PaperSizeByFormatName(PaperName, settings);

            if (size == null)
            {
                // let's create a custom paper size
                size = new PaperSize {
                    Width = Width, Height = Height, PaperName = PaperName
                };
            }

            var page = settings.DefaultPageSettings;

            page.Landscape = Landscape;
            page.PaperSize = size;
            page.Margins   = Margins;
        }
예제 #2
0
        private SizeF GetUsablePaperSize()
        {
            if (string.IsNullOrWhiteSpace(View.PaperFormat))
            {
                return(default(SizeF));
            }

            var paperSize = PaperSizes.PaperSizeByFormatName(View.PaperFormat, Model.PrinterSettings);

            if (paperSize != null)
            {
                var   margins = AppConfig.Instance.PrintingMargins;
                float width   = paperSize.Width - margins.Left - margins.Right;
                float height  = paperSize.Height - margins.Top - margins.Bottom;

                bool swap = View.Orientation != Orientation.Vertical;

                return(new SizeF(swap ? height : width, swap ? width : height));
            }

            Logger.Current.Warn("Failed to find specified paper format: " + View.PaperFormat);
            return(default(SizeF));
        }