internal override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, RPLWriter rplWriter, PageContext pageContext) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; ImageInstance imageInstance = (ImageInstance)image.Instance; System.Drawing.Image gdiImage = null; bool flag = AutoSizeImage(pageContext, imageInstance, out gdiImage); try { if (flag) { WriteImage(null, "InvalidImage", spbifWriter, pageContext, gdiImage); } else { WriteImage(imageInstance, null, spbifWriter, pageContext, gdiImage); } } finally { if (gdiImage != null) { gdiImage.Dispose(); gdiImage = null; } } WriteActionInfo(image.ActionInfo, spbifWriter, pageContext, 7); WriteImageMapAreaInstanceCollection(imageInstance.ActionInfoWithDynamicImageMapAreas, spbifWriter, pageContext); }
internal Image(Microsoft.ReportingServices.OnDemandReportRendering.Image source, PageContext pageContext, bool createForRepeat) : base(source) { if (pageContext != null) { if (createForRepeat) { m_itemPageSizes = pageContext.GetSharedFromRepeatItemSizesElement(source, isPadded: false); } else { m_itemPageSizes = pageContext.GetSharedItemSizesElement(source, isPadded: false); } } else { m_itemPageSizes = new ItemSizes(source); } if (source.Sizing == Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.AutoSize) { if (m_itemPageSizes.Width == 0.0) { m_itemPageSizes.Width = 3.8; } if (m_itemPageSizes.Height == 0.0) { m_itemPageSizes.Height = 4.0; } } }
private void DetermineSize(PageContext pageContext) { if (!m_invalidImage && m_streamName == null && m_imageProps == null) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; CheckAutoSize(image, pageContext); } if (m_imageProps != null) { ResizeImage(pageContext, m_imageProps.Width, m_imageProps.Height); } else { if (m_streamName == null) { return; } Hashtable autoSizeSharedImages = pageContext.AutoSizeSharedImages; if (autoSizeSharedImages != null) { AutosizeImageProps autosizeImageProps = (AutosizeImageProps)autoSizeSharedImages[m_streamName]; if (autosizeImageProps != null) { ResizeImage(pageContext, autosizeImageProps.Width, autosizeImageProps.Height); } } } }
internal override void CacheNonSharedProperties(PageContext pageContext) { if (pageContext.CacheNonSharedProps) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; CheckAutoSize(image, pageContext); base.CacheNonSharedProperties(pageContext); } }
private void CheckAutoSize(Microsoft.ReportingServices.OnDemandReportRendering.Image image, PageContext pageContext) { if (image.Sizing == Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.AutoSize) { ImageInstance imageInstance = (ImageInstance)image.Instance; System.Drawing.Image gdiImage = null; m_invalidImage = AutoSizeImage(pageContext, imageInstance, out gdiImage); if (gdiImage != null) { m_imageProps = new GDIImageProps(gdiImage); gdiImage.Dispose(); } } }
internal override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, PageContext pageContext) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; ImageInstance imageInstance = (ImageInstance)image.Instance; RPLImageProps rPLImageProps = (RPLImageProps)nonSharedProps; if (m_invalidImage) { WriteInvalidImage(rPLImageProps, pageContext, m_imageProps); } else { WriteImage(imageInstance, null, rPLImageProps, pageContext, m_imageProps); } rPLImageProps.ActionInfo = PageItem.WriteActionInfo(image.ActionInfo); }
internal static string SharedImageStreamName(Microsoft.ReportingServices.OnDemandReportRendering.Image image, PageContext pageContext) { ImageInstance imageInstance = (ImageInstance)image.Instance; System.Drawing.Image gdiImage = null; bool num = new Image(image, pageContext, createForRepeat: false).AutoSizeImage(pageContext, imageInstance, out gdiImage); if (gdiImage != null) { gdiImage.Dispose(); gdiImage = null; } if (num) { return("InvalidImage"); } return(imageInstance?.StreamName); }
internal override void WriteCustomNonSharedItemProps(BinaryWriter spbifWriter, PageContext pageContext) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; ImageInstance imageInstance = (ImageInstance)image.Instance; if (m_invalidImage) { if (m_nonSharedOffset < 0) { WriteInvalidImage(spbifWriter, pageContext, m_imageProps); } } else { WriteImage(imageInstance, null, spbifWriter, pageContext, m_imageProps, writeShared: false); } WriteActionInfo(image.ActionInfo, spbifWriter); }
internal override void WriteCustomNonSharedItemProps(RPLElementProps nonSharedProps, RPLWriter rplWriter, PageContext pageContext) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; ImageInstance imageInstance = (ImageInstance)image.Instance; System.Drawing.Image gdiImage = null; RPLImageProps rPLImageProps = (RPLImageProps)nonSharedProps; if (AutoSizeImage(pageContext, imageInstance, out gdiImage)) { WriteImage(null, "InvalidImage", rPLImageProps, pageContext, gdiImage); } else { WriteImage(imageInstance, null, rPLImageProps, pageContext, gdiImage); } rPLImageProps.ActionInfo = WriteActionInfo(image.ActionInfo, pageContext); rPLImageProps.ActionImageMapAreas = WriteImageMapAreaInstanceCollection(imageInstance.ActionInfoWithDynamicImageMapAreas, pageContext); }
internal override void WriteCustomSharedItemProps(RPLElementPropsDef sharedProps, RPLWriter rplWriter, PageContext pageContext) { Microsoft.ReportingServices.OnDemandReportRendering.Image obj = (Microsoft.ReportingServices.OnDemandReportRendering.Image)m_source; RPLImagePropsDef rPLImagePropsDef = (RPLImagePropsDef)sharedProps; switch (obj.Sizing) { case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.AutoSize: rPLImagePropsDef.Sizing = RPLFormat.Sizings.AutoSize; break; case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.Clip: rPLImagePropsDef.Sizing = RPLFormat.Sizings.Clip; break; case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.Fit: rPLImagePropsDef.Sizing = RPLFormat.Sizings.Fit; break; case Microsoft.ReportingServices.OnDemandReportRendering.Image.Sizings.FitProportional: rPLImagePropsDef.Sizing = RPLFormat.Sizings.FitProportional; break; } }
internal bool RegisterItem(PageItem pageItem, PageContext pageContext) { if (m_itemFound || pageItem == null) { return(false); } switch (m_eventType) { case EventType.Collect: { ReportItemInstance instance5 = pageItem.Source.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance5); } if (pageContext.Bookmarks != null) { pageContext.Bookmarks.WriteBookmark(instance5); } if (pageContext.PageBookmarks != null) { pageContext.RegisterPageBookmark(instance5); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.BookmarkNavigationEvent: { ReportItemInstance instance2 = pageItem.Source.Instance; if (instance2.Bookmark != null && SPBProcessing.CompareWithOrdinalComparison(m_bookmarkId, instance2.Bookmark, ignoreCase: false) == 0) { m_itemFound = true; m_itemInfo = instance2.UniqueName; return(false); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.DrillthroughEvent: { ReportItemInstance instance = pageItem.Source.Instance; TextBoxInstance textBoxInstance = instance as TextBoxInstance; if (textBoxInstance != null) { Microsoft.ReportingServices.OnDemandReportRendering.TextBox textBox = (Microsoft.ReportingServices.OnDemandReportRendering.TextBox)pageItem.Source; if (!HasMatchingDrillthrough(textBox.ActionInfo)) { foreach (ParagraphInstance paragraphInstance in textBoxInstance.ParagraphInstances) { foreach (TextRunInstance textRunInstance in paragraphInstance.TextRunInstances) { Microsoft.ReportingServices.OnDemandReportRendering.TextRun definition = textRunInstance.Definition; if (HasMatchingDrillthrough(definition.ActionInfo)) { return(false); } } } } } else { ImageInstance imageInstance = instance as ImageInstance; if (imageInstance != null) { if (!HasMatchingDrillthrough(imageInstance.ActionInfoWithDynamicImageMapAreas)) { Microsoft.ReportingServices.OnDemandReportRendering.Image image = (Microsoft.ReportingServices.OnDemandReportRendering.Image)pageItem.Source; HasMatchingDrillthrough(image.ActionInfo); } } else { IDynamicImageInstance dynamicImageInstance = instance as IDynamicImageInstance; if (dynamicImageInstance != null) { ActionInfoWithDynamicImageMapCollection actionImageMaps; using (dynamicImageInstance.GetImage(DynamicImageInstance.ImageType.PNG, out actionImageMaps)) { } HasMatchingDrillthrough(actionImageMaps); } } } if (m_itemFound) { return(false); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.DocumentMapNavigationEvent: { ReportItemInstance instance3 = pageItem.Source.Instance; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, instance3.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; return(false); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.GetDocumentMap: { ReportItemInstance instance4 = pageItem.Source.Instance; if (pageContext.Labels != null) { pageContext.Labels.WriteDocMapLabel(instance4); } if (pageItem.ItemState != PageItem.State.OnPageHidden) { return(false); } break; } case EventType.FindChart: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source2 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source2.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; ChartInstance chartInstance2 = source2.Instance as ChartInstance; if (chartInstance2 != null) { WriteDynamicImageStream(chartInstance2.GetImage()); } } break; } case EventType.FindGaugePanel: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source3 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source3.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; GaugePanelInstance gaugePanelInstance2 = source3.Instance as GaugePanelInstance; if (gaugePanelInstance2 != null) { WriteDynamicImageStream(gaugePanelInstance2.GetImage()); } } break; } case EventType.FindMap: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source5 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source5.Instance.UniqueName, ignoreCase: true) == 0) { m_itemFound = true; MapInstance mapInstance2 = source5.Instance as MapInstance; if (mapInstance2 != null) { WriteDynamicImageStream(mapInstance2.GetImage()); } } break; } case EventType.FindImage: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } ReportItem source4 = pageItem.Source; if (SPBProcessing.CompareWithOrdinalComparison(m_itemInfo, source4.Instance.UniqueName, ignoreCase: true) != 0) { break; } m_itemFound = true; ImageInstance imageInstance2 = source4.Instance as ImageInstance; if (imageInstance2 != null) { Stream stream3 = m_createAndRegisterStream(m_streamName, string.Empty, null, imageInstance2.MIMEType, willSeek: false, StreamOper.CreateAndRegister); byte[] imageData = imageInstance2.ImageData; if (stream3 != null && imageData != null && imageData.Length != 0) { stream3.Write(imageData, 0, imageData.Length); } } break; } case EventType.ImageConsolidation: { if (pageItem.ItemState == PageItem.State.OnPageHidden) { break; } 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) { m_itemFound = true; } } break; } default: FindTextBox(pageItem as TextBox, pageContext); break; } return(true); }
internal Image(Microsoft.ReportingServices.OnDemandReportRendering.Image source) : base(source) { m_itemPageSizes = new ItemSizes(source); }
private void Visit(Microsoft.ReportingServices.OnDemandReportRendering.ReportItem item) { if (item == null || item.Instance == null) { return; } bool generateDocMap = m_generateDocMap; if (!ProcessVisibilityAndContinue(item.Visibility, item.Instance.Visibility, null)) { return; } if (item is Microsoft.ReportingServices.OnDemandReportRendering.Line || item is Microsoft.ReportingServices.OnDemandReportRendering.Chart || item is Microsoft.ReportingServices.OnDemandReportRendering.GaugePanel || item is Microsoft.ReportingServices.OnDemandReportRendering.Map) { GenerateSimpleReportItemDocumentMap(item); } else if (item is Microsoft.ReportingServices.OnDemandReportRendering.TextBox) { GenerateSimpleReportItemDocumentMap(item); VisitStyle(item.Style); } else if (item is Microsoft.ReportingServices.OnDemandReportRendering.Image) { GenerateSimpleReportItemDocumentMap(item); Microsoft.ReportingServices.OnDemandReportRendering.Image image = item as Microsoft.ReportingServices.OnDemandReportRendering.Image; Microsoft.ReportingServices.OnDemandReportRendering.Image.SourceType source = image.Source; if (m_createSnapshot && (source == Microsoft.ReportingServices.OnDemandReportRendering.Image.SourceType.External || source == Microsoft.ReportingServices.OnDemandReportRendering.Image.SourceType.Database)) { _ = (image.Instance as Microsoft.ReportingServices.OnDemandReportRendering.ImageInstance)?.ImageData; } } else if (item is Microsoft.ReportingServices.OnDemandReportRendering.Rectangle) { VisitRectangle(item as Microsoft.ReportingServices.OnDemandReportRendering.Rectangle); VisitStyle(item.Style); } else if (!(item is Microsoft.ReportingServices.OnDemandReportRendering.CustomReportItem)) { bool flag = false; if (m_generateDocMap) { string documentMapLabel = item.Instance.DocumentMapLabel; if (documentMapLabel != null) { flag = true; WriteDocumentMapBeginContainer(documentMapLabel, item.Instance.UniqueName); } } if (item is Microsoft.ReportingServices.OnDemandReportRendering.Tablix) { VisitTablix(item as Microsoft.ReportingServices.OnDemandReportRendering.Tablix); VisitStyle(item.Style); } else if (item is Microsoft.ReportingServices.OnDemandReportRendering.SubReport) { VisitSubReport(item as Microsoft.ReportingServices.OnDemandReportRendering.SubReport); } else { Global.Tracer.Assert(condition: false); } if (flag) { WriteDocumentMapEndContainer(); } } m_generateDocMap = generateDocMap; }