public override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, PageContext pageContext) { ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null; RPLDynamicImageProps rPLDynamicImageProps = (RPLDynamicImageProps)nonSharedProps; rPLDynamicImageProps.DynamicImageContent = this.LoadDynamicImage(out actionInfoWithDynamicImageMapCollection, pageContext); }
private Stream LoadDynamicImage(out ActionInfoWithDynamicImageMapCollection actionImageMaps, PageContext pageContext) { IDynamicImageInstance dynamicImageInstance = (IDynamicImageInstance)base.m_source.Instance; dynamicImageInstance.SetDpi(pageContext.DynamicImageDpiX, pageContext.DynamicImageDpiY); if (pageContext.IsInSelectiveRendering) { dynamicImageInstance.SetSize(pageContext.Common.Pagination.PhysicalPageWidth, pageContext.Common.Pagination.PhysicalPageHeight); } return(dynamicImageInstance.GetImage((DynamicImageInstance.ImageType)(pageContext.EMFDynamicImages ? 1 : 0), out actionImageMaps)); }
public override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, RPLWriter rplWriter, PageContext pageContext) { ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null; RPLDynamicImageProps rPLDynamicImageProps = (RPLDynamicImageProps)nonSharedProps; string streamName = null; System.Drawing.Rectangle empty = System.Drawing.Rectangle.Empty; rPLDynamicImageProps.DynamicImageContent = this.LoadDynamicImage(pageContext, ref streamName, out actionInfoWithDynamicImageMapCollection, out empty); rPLDynamicImageProps.ImageConsolidationOffsets = empty; rPLDynamicImageProps.StreamName = streamName; if (actionInfoWithDynamicImageMapCollection != null) { rPLDynamicImageProps.ActionImageMapAreas = base.WriteImageMapAreaInstanceCollection(actionInfoWithDynamicImageMapCollection, pageContext); } }
private bool HasMatchingDrillthrough(ActionInfoWithDynamicImageMapCollection imageMaps) { if (imageMaps == null) { return(false); } foreach (ActionInfoWithDynamicImageMap imageMap in imageMaps) { if (HasMatchingDrillthrough(imageMap)) { return(true); } } return(false); }
public override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, PageContext pageContext) { ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null; Stream stream = this.LoadDynamicImage(out actionInfoWithDynamicImageMapCollection, pageContext); if (stream != null) { spbifWriter.Write((byte)39); spbifWriter.Write((int)stream.Length); byte[] array = new byte[4096]; stream.Position = 0L; for (int num = stream.Read(array, 0, array.Length); num != 0; num = stream.Read(array, 0, array.Length)) { spbifWriter.Write(array, 0, num); } } }
public override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext) { ActionInfoWithDynamicImageMapCollection actionInfoWithDynamicImageMapCollection = null; string text = null; System.Drawing.Rectangle empty = System.Drawing.Rectangle.Empty; Stream stream = this.LoadDynamicImage(pageContext, ref text, out actionInfoWithDynamicImageMapCollection, out empty); if (text != null) { spbifWriter.Write((byte)40); spbifWriter.Write(text); } if (!empty.IsEmpty) { if (pageContext.VersionPicker == RPLVersionEnum.RPL2008WithImageConsolidation) { spbifWriter.Write((byte)47); } else { spbifWriter.Write((byte)49); } spbifWriter.Write(empty.Left); spbifWriter.Write(empty.Top); spbifWriter.Write(empty.Width); spbifWriter.Write(empty.Height); } if (stream != null) { spbifWriter.Write((byte)39); spbifWriter.Write((int)stream.Length); byte[] array = new byte[4096]; stream.Position = 0L; for (int num = stream.Read(array, 0, array.Length); num != 0; num = stream.Read(array, 0, array.Length)) { spbifWriter.Write(array, 0, num); } } if (actionInfoWithDynamicImageMapCollection != null) { base.WriteImageMapAreaInstanceCollection(actionInfoWithDynamicImageMapCollection, spbifWriter, pageContext); } }
internal override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext) { ActionInfoWithDynamicImageMapCollection actionImageMaps = null; string streamName = null; System.Drawing.Rectangle offsets = System.Drawing.Rectangle.Empty; Stream stream = LoadDynamicImage(pageContext, ref streamName, out actionImageMaps, out offsets); if (streamName != null) { spbifWriter.Write((byte)40); spbifWriter.Write(streamName); } if (!offsets.IsEmpty) { if (pageContext.VersionPicker == RPLVersionEnum.RPL2008WithImageConsolidation) { spbifWriter.Write((byte)47); } else { spbifWriter.Write((byte)49); } spbifWriter.Write(offsets.Left); spbifWriter.Write(offsets.Top); spbifWriter.Write(offsets.Width); spbifWriter.Write(offsets.Height); } if (stream != null) { spbifWriter.Write((byte)39); spbifWriter.Write((int)stream.Length); byte[] array = new byte[4096]; stream.Position = 0L; for (int num = stream.Read(array, 0, array.Length); num != 0; num = stream.Read(array, 0, array.Length)) { spbifWriter.Write(array, 0, num); } } if (actionImageMaps != null) { WriteImageMapAreaInstanceCollection(actionImageMaps, spbifWriter, pageContext); } }
public Stream LoadDynamicImage(PageContext pageContext, ref string streamName, out ActionInfoWithDynamicImageMapCollection actionImageMaps, out System.Drawing.Rectangle offsets) { IDynamicImageInstance dynamicImageInstance = (IDynamicImageInstance)base.m_source.Instance; Stream result = null; if (pageContext.EmfDynamicImage) { dynamicImageInstance.SetDpi(96, 96); result = dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.EMF, out actionImageMaps); this.Register(ref result, ref streamName, "emf", "image/emf", pageContext, out offsets); } else { result = dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.PNG, out actionImageMaps); this.Register(ref result, ref streamName, "png", PageContext.PNG_MIME_TYPE, pageContext, out offsets); } return(result); }
public bool RegisterItem(PageItem pageItem, PageContext pageContext) { if (!this.m_itemFound && pageItem != null) { switch (this.m_eventType) { case EventType.Collect: { ReportItemInstance instance2 = pageItem.Source.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance2); } if (pageContext.Bookmarks != null) { pageContext.Bookmarks.WriteBookmark(instance2); } if (pageContext.PageBookmarks != null) { pageContext.RegisterPageBookmark(instance2); } if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } return(false); } case EventType.BookmarkNavigationEvent: { ReportItemInstance instance = pageItem.Source.Instance; if (instance.Bookmark != null && SPBProcessing.CompareWithOrdinalComparison(this.m_bookmarkId, instance.Bookmark, false) == 0) { this.m_itemFound = true; this.m_itemInfo = instance.UniqueName; return(false); } if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } return(false); } case EventType.DrillthroughEvent: { ReportItemInstance instance5 = pageItem.Source.Instance; TextBoxInstance textBoxInstance = instance5 as TextBoxInstance; if (textBoxInstance != null) { AspNetCore.ReportingServices.OnDemandReportRendering.TextBox textBox = (AspNetCore.ReportingServices.OnDemandReportRendering.TextBox)pageItem.Source; if (!this.HasMatchingDrillthrough(textBox.ActionInfo)) { foreach (ParagraphInstance paragraphInstance in textBoxInstance.ParagraphInstances) { foreach (TextRunInstance textRunInstance in paragraphInstance.TextRunInstances) { AspNetCore.ReportingServices.OnDemandReportRendering.TextRun definition = textRunInstance.Definition; if (this.HasMatchingDrillthrough(definition.ActionInfo)) { return(false); } } } } } else { ImageInstance imageInstance2 = instance5 as ImageInstance; if (imageInstance2 != null) { if (!this.HasMatchingDrillthrough(imageInstance2.ActionInfoWithDynamicImageMapAreas)) { AspNetCore.ReportingServices.OnDemandReportRendering.Image image = (AspNetCore.ReportingServices.OnDemandReportRendering.Image)pageItem.Source; this.HasMatchingDrillthrough(image.ActionInfo); } } else { IDynamicImageInstance dynamicImageInstance = instance5 as IDynamicImageInstance; if (dynamicImageInstance != null) { ActionInfoWithDynamicImageMapCollection imageMaps = default(ActionInfoWithDynamicImageMapCollection); using (dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.PNG, out imageMaps)) { } this.HasMatchingDrillthrough(imageMaps); } } } if (this.m_itemFound) { return(false); } if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } return(false); } case EventType.DocumentMapNavigationEvent: { ReportItemInstance instance3 = pageItem.Source.Instance; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, instance3.UniqueName, true) == 0) { this.m_itemFound = true; return(false); } if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } return(false); } case EventType.GetDocumentMap: { ReportItemInstance instance4 = pageItem.Source.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance4); } if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } return(false); } case EventType.FindChart: if (pageItem.ItemState != PageItem.State.OnPageHidden) { ReportItem source2 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source2.Instance.UniqueName, true) == 0) { this.m_itemFound = true; ChartInstance chartInstance2 = source2.Instance as ChartInstance; if (chartInstance2 != null) { this.WriteDynamicImageStream(chartInstance2.GetImage()); } } } break; case EventType.FindGaugePanel: if (pageItem.ItemState != PageItem.State.OnPageHidden) { ReportItem source3 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source3.Instance.UniqueName, true) == 0) { this.m_itemFound = true; GaugePanelInstance gaugePanelInstance2 = source3.Instance as GaugePanelInstance; if (gaugePanelInstance2 != null) { this.WriteDynamicImageStream(gaugePanelInstance2.GetImage()); } } } break; case EventType.FindMap: if (pageItem.ItemState != PageItem.State.OnPageHidden) { ReportItem source5 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source5.Instance.UniqueName, true) == 0) { this.m_itemFound = true; MapInstance mapInstance2 = source5.Instance as MapInstance; if (mapInstance2 != null) { this.WriteDynamicImageStream(mapInstance2.GetImage()); } } } break; case EventType.FindImage: if (pageItem.ItemState != PageItem.State.OnPageHidden) { ReportItem source4 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(this.m_itemInfo, source4.Instance.UniqueName, true) == 0) { this.m_itemFound = true; ImageInstance imageInstance = source4.Instance as ImageInstance; if (imageInstance != null) { Stream stream2 = this.m_createAndRegisterStream(this.m_streamName, string.Empty, null, imageInstance.MIMEType, false, StreamOper.CreateAndRegister); byte[] imageData = imageInstance.ImageData; if (stream2 != null && imageData != null && imageData.Length != 0) { stream2.Write(imageData, 0, imageData.Length); } } } } break; case EventType.ImageConsolidation: if (pageItem.ItemState != PageItem.State.OnPageHidden) { ReportItem source = pageItem.Source; GaugePanelInstance gaugePanelInstance = source.Instance as GaugePanelInstance; Stream stream = null; if (gaugePanelInstance != null) { stream = gaugePanelInstance.GetImage(); } else { ChartInstance chartInstance = source.Instance as ChartInstance; if (chartInstance != null) { stream = chartInstance.GetImage(); } else { MapInstance mapInstance = source.Instance as MapInstance; if (mapInstance != null) { stream = mapInstance.GetImage(); } } } if (stream != null) { ImageConsolidation imageConsolidation = pageContext.ImageConsolidation; imageConsolidation.AppendImage(stream); if (imageConsolidation.CurrentOffset >= imageConsolidation.IgnoreOffsetTill + 1 && imageConsolidation.ImageInfos.Count > 0) { this.m_itemFound = true; } } } break; default: this.FindTextBox(pageItem as TextBox, pageContext); break; } return(true); } return(false); }
internal override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, PageContext pageContext) { ActionInfoWithDynamicImageMapCollection actionImageMaps = null; ((RPLDynamicImageProps)nonSharedProps).DynamicImageContent = LoadDynamicImage(out actionImageMaps, pageContext); }