Httphandlers(1.6.45.0)

отредактировано 09:26 Раздел: FastReport .NET
Всем доброго времени суток.

Возникла проблема с отчетом, пришлось перейти на версию 1.6.45.0 при этом половина отчетов перестала работать при экспорте в PDF.
Вместо содержимого пустые страницы.
Окружение
WIN XP IIS 5.1 (WIN2003 IIS 6)
ASP.NET Microsoft.NET v4.0.30319

Добавил в web.config настройки хендлеров
<system.web>
    <httpHandlers>
            <add path="FastReport.Export.aspx" verb="*" type="FastReport.Web.Handlers.WebExport" validate="false"/>      
        </httpHandlers>
в настройках IIS обработчики файлов назначены верно.
c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll
проверил работоспособность хендлеров - работают:
"FastReport.Web.WebExport handler - 15.06.2011 11:22:21 - FastReport Version 1.6.45"

Но результат экспорта не изменился.

Экспорт делаю следующим образом:
strm = System.IO.File.Create(Path.GetRandomFileName(), 10, FileOptions.DeleteOnClose);
FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport();
report.Export(pdfExport, strm);
byte[] data = new byte[65536]; // 65Kb
while (0 != (bytesRead = strm.Read(data, 0, data.Length)) && Response.IsClientConnected)
{
Response.OutputStream.Write(data, 0, bytesRead);
buffer = Response.Buffer;
Response.Flush();
}
strm.Close();
strm.Dispose();

Может кто то сталкивался в подобной проблемой?

Комментарии

  • отредактировано 09:26
    FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport();

    У себя всегда делаю report.Prepare();

    report.Export(pdfExport, strm);


  • отредактировано 09:26
    report.Prepare();
    
    Это само собой, я думал может экспорт в ASP изменился, функции новые появились или еще что.

    Вопрос остается открытым.
  • отредактировано 09:26
    report.Prepare();
    
    Это само собой, я думал может экспорт в ASP изменился, функции новые появились или еще что.

    Вопрос остается открытым.
  • отредактировано June 2011
    strm.Position = 0;

    Может из-за этого? То есть, не хватает этого, я попробовал без этого у меня в цикл не заходит.
  • отредактировано 09:26
    BoxyBrown написал: »
    strm.Position = 0;

    Может из-за этого? То есть, не хватает этого, я попробовал без этого у меня в цикл не заходит.

    Не не из-за этого, попробовал.
    Дело в том что PDF выгружается с нужным числом страниц, но почти все пустые, а .FPX выгружаются норм, проблема где-то в экспорте.
  • отредактировано 09:26
            /// <summary>
            /// Returns the PDF stream contents as byte array
            /// </summary>
            /// <returns></returns>
            public static byte[] exportToPDFStream(Report report)
            {
                MemoryStream Strm = null;
                FastReport.Utils.Config.WebMode = true;
                report.Prepare();
    
                // Export report to PDF stream
                FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport();
                using (Strm = new MemoryStream())
                {
                    report.Export(pdfExport, Strm);
                }
    
                return Strm.ToArray();
            }
    

    100% рабочий код
  • отредактировано 09:26
    написал: »
            /// <summary>
            /// Returns the PDF stream contents as byte array
            /// </summary>
            /// <returns></returns>
            public static byte[] exportToPDFStream(Report report)
            {
                MemoryStream Strm = null;
                FastReport.Utils.Config.WebMode = true;
                report.Prepare();
    
                // Export report to PDF stream
                FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport();
                using (Strm = new MemoryStream())
                {
                    report.Export(pdfExport, Strm);
                }
    
                return Strm.ToArray();
            }
    

    100% рабочий код


    MemoryStream stream не всегда подходит так как PDF получается большой очень.
    Открыл получившийся PDF обнаружил что в конце содержится текст мой странички в виде HTML.
    есть подозрение что это из-за того что завершаю респонз следующим способом HttpContext.Current.ApplicationInstance.CompleteRequest();

    Виктор_75, у вас какой способ отправки в респоз???

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.