Страница 1 из 1

Exception в момент экспорта отчета в HTML формат

Добавлено: 15 окт 2010, 12:58
digger
Стек:

The path is not of a legal form.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: The path is not of a legal form.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[ArgumentException: The path is not of a legal form.]
System.IO.Path.NormalizePathFast(String path, Boolean fullCheck) +7490389
System.IO.Path.NormalizePath(String path, Boolean fullCheck) +36
System.IO.Path.GetDirectoryName(String path) +31
Stimulsoft.Report.Export.StiHtmlImageHost.GetImageString(Bitmap bmp) +93
Stimulsoft.Report.Export.StiHtmlExportService.RenderImage(Image image, String imageURL, Single zoom) +128
Stimulsoft.Report.Export.StiHtmlExportService.RenderImage(IStiExportImage exportImage, String imageURL) +339
Stimulsoft.Report.Export.StiHtmlExportService.RenderImage(StiComponent comp) +115
Stimulsoft.Report.Export.StiHtmlExportService.ExportHtml(StiReport report, StiHtmlTextWriter writer, StiHtmlExportSettings settings, StiPagesCollection pages) +8089
Stimulsoft.Report.Export.StiHtmlExportService.ExportHtml(StiReport report, Stream stream, StiHtmlExportSettings settings) +151
Stimulsoft.Report.StiReport.ExportDocument(StiExportFormat exportFormat, StiExportService exportService, Stream stream, StiExportSettings settings) +9028
Stimulsoft.Report.StiReport.ExportDocument(StiExportFormat exportFormat, Stream stream) +12



Exception в момент экспорта отчета в HTML формат

Добавлено: 20 окт 2010, 08:49
Ivan
Здравствуйте.

По умолчанию экспорт html производится в файл, и экспорт пытается сохранить изображения рядом с html-файлом. Но в web экспорт производится в поток, пути файла нет, и происходит исключение.
Поэтому если ваш отчет содержит изображения, вы должны использовать специальный класс StiHtmlImageHost. Этот класс служит для сохранения изображений в Web.
Пример класса:

Код: Выделить всё

public class StiWebImageHost : StiHtmlImageHost
	{
		public override string GetImageString(Bitmap bmp)
		{
			Guid imageGuid = Guid.NewGuid();
			
			MemoryStream imageStream = new MemoryStream();
			bmp.Save(imageStream, webViewer.ImageFormat);

            if (webViewer.CacheMode == StiCacheMode.Page)
            {
                webViewer.Page.Cache.Add(imageGuid.ToString(), imageStream.ToArray(), null, Cache.NoAbsoluteExpiration,
                    webViewer.ServerTimeOut, System.Web.Caching.CacheItemPriority.Low, null);
            }
            else
            {
                webViewer.Page.Session.Add(imageGuid.ToString(), imageStream.ToArray());
            }

			string url = webViewer.Page.Request.Url.AbsolutePath;
            string query = webViewer.Page.Request.Url.Query;

            if (query != null && query.Length > 0)
            {
                return string.Format("{0}{1}&stimulreport_image={2}", url, query, imageGuid);
            }
            else
            {
                return string.Format("{0}?stimulreport_image={1}", url, imageGuid);
            }
		}

		private StiWebViewer webViewer = null;

		public StiWebImageHost(StiWebViewer webViewer) : base (null)
		{
			this.webViewer = webViewer;
		}
	}
Код для использования класса:

Код: Выделить всё

StiHtmlExportService service = new StiHtmlExportService();
service.HtmlImageHost = new MyHtmlImageHost();
service.ExportHtml(report, Stream);
Также можете почитать топик в нашей базе знаний:
http://stimulsoft.helpserve.com/index.p ... ticleid=21

Спасибо.

Exception в момент экспорта отчета в HTML формат

Добавлено: 17 ноя 2010, 14:28
digger
Приведенный код сохраняет картинку в сессии. Но как отчет получит ее обратно.
У меня получается HTML файл с пустыми картинками, они не закачиваются на клиента, когда я возвращаю стрим там вместо картинок ссылки на картики, которые не грузятся типа:

file:///C:/ReportEngine.Web/Forms/ExportReport.aspx?ReportID=71&DataRange=01/30/09-05/29/09&Format=HTML&stimulreport_image=e7817315-30d3-48a6-afb1-08f3dadbb7d5

Exception в момент экспорта отчета в HTML формат

Добавлено: 18 ноя 2010, 09:46
Vladimir
Здравствуйте,

К сожалению, нет никакой возможности сохранить за один раз много файлов на клиентский компьютер, это не позволяет сделать браузер. Как вариант, вы можете сохранять отчёт в формате MHT, который позволяет хранить в одном файле текст с картинками.

Спасибо.