/// <summary> /// Initializes this instance. /// </summary> protected virtual void Init() { _mediaSize = PrintMediaSize.NorthAmericaLetter; Size pageSize = _dict[_mediaSize]; _width = pageSize.Width; _height = pageSize.Height; }
/// <summary> /// Creates a new paper size setting with a custom paper size. /// </summary> /// <param name="width">The custom width.</param> /// <param name="height">The custom height.</param> public PaperSize(double width, double height) : this() { if (width <= 0.0) { throw new ArgumentOutOfRangeException("width", ResourceStrings.ReportingPaperSizeWidthError); } if (height <= 0.0) { throw new ArgumentOutOfRangeException("height", ResourceStrings.ReportingPaperSizeHightError); } _mediaSize = PrintMediaSize.PrinterCustom; _width = width; _height = height; }
/// <summary> /// 处理打印请求 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnPrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e) { sender.PrintTaskRequested -= OnPrintTaskRequested; PrintTask printTask = null; printTask = e.Request.CreatePrintTask(_jobName, (src) => { // 初始化打印预览时的方向和纸张大小 printTask.Options.Orientation = (_info.Orientation == PrintPageOrientation.Portrait) ? PrintOrientation.Portrait : PrintOrientation.Landscape; PrintMediaSize size = _info.PaperSize.MediaSize; if (size != PrintMediaSize.PrinterCustom) { printTask.Options.MediaSize = size; } // 报表中包含图片,先将Excel导出,再导入。否则,图片打印不出来 if (_hasPictures) { _excel.ShowDecoration = false; _cachedStream = new MemoryStream(); _excel.SaveXmlBackground(_cachedStream); _cachedStream.Seek(0L, SeekOrigin.Begin); _excel.OpenXmlOnBackground(_cachedStream); } Memento memento = new Memento(); Init(memento); StretchContent(); src.SetSource(_printDoc.DocumentSource); // 打印任务完成时释放资源 printTask.Completed += (s, args) => { if (_hasPictures) { // 恢复分页线 if (_showDeco) { _excel.ShowDecoration = true; _cachedStream.Seek(0L, SeekOrigin.Begin); _excel.OpenXmlOnBackground(_cachedStream); } _cachedStream.Close(); _cachedStream = null; } Resume(memento); }; }); }
/// <summary> /// Reads the XML base. /// </summary> /// <param name="reader">The reader.</param> protected virtual void ReadXmlBase(XmlReader reader) { string str; Serializer.InitReader(reader); if ((reader.NodeType == ((XmlNodeType)((int)XmlNodeType.Element))) && ((str = reader.Name) != null)) { if (str != "MediaSize") { if (str != "PaperWidth") { if (str == "PaperHeight") { _height = Serializer.ReadAttributeDouble("value", 0.0, reader); } return; } } else { _mediaSize = Serializer.ReadAttributeEnum("value", PrintMediaSize.NorthAmericaLetter, reader); if (_mediaSize != PrintMediaSize.PrinterCustom) { try { Size pageSize = _dict[_mediaSize]; _width = (int)pageSize.Width; _height = (int)pageSize.Height; } catch { } } return; } _width = Serializer.ReadAttributeDouble("value", 0.0, reader); } }
public PaperSize(PrintMediaSize mediaSize) : this() { MediaSize = mediaSize; }