/// <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; }
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)); }