Cgi-bin Pdf
Приветствую.
Установлена текущая демонстрационная версия FastReport .NET (VS2010 .Net 4.0).
C# консольное приложение генерирует отчет и экспортирует его в PDF для передачи в браузер через CGI-BIN.
При запуске приложения в браузере прямым вызовов (http://demo/cgi-bin/gendemo.exe) открывается окно с Adobe Acrobat Reader (v.9.3) , но вместо отчета белый лист и сообщение об ошибке: There was an error processing a page. A file I/O error has occurred.
Если изменить тип генерируемого содержимого, например, на Content-Type: text/html и предавать HTML страничку, всё отлично отрабатывает.
Как избавиться от ошибки?
Код приложения:
Установлена текущая демонстрационная версия FastReport .NET (VS2010 .Net 4.0).
C# консольное приложение генерирует отчет и экспортирует его в PDF для передачи в браузер через CGI-BIN.
При запуске приложения в браузере прямым вызовов (http://demo/cgi-bin/gendemo.exe) открывается окно с Adobe Acrobat Reader (v.9.3) , но вместо отчета белый лист и сообщение об ошибке: There was an error processing a page. A file I/O error has occurred.
Если изменить тип генерируемого содержимого, например, на Content-Type: text/html и предавать HTML страничку, всё отлично отрабатывает.
Как избавиться от ошибки?
Код приложения:
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using FastReport;
using FastReport.Export.Pdf;
using FastReport.Utils;
namespace gendemo
{
class Program
{
static void Main(string[] args)
{
Console.Write("Content-Type: application/pdf\n\n");
// создаем экземпляр отчета
Report report = new Report();
// загружаем шаблон отчета
report.Load("report2.frx");
int[] FArray;
FArray = new int[10];
for (int i = 0; i < 10; i++)
{
FArray[i] = i + 1;
}
// register the array
report.RegisterData(FArray, "Array");
// скрываем отображение прогресса окна
Config.ReportSettings.ShowProgress = false;
// подготовка отчета к использованию
report.Prepare();
// экспорт
PDFExport exp = new PDFExport();
//exp.Export(report, @".\out.pdf");
MemoryStream stream = new MemoryStream();
exp.Export(report, stream);
stream.Flush();
stream.Position = 0;
StreamReader sr = new StreamReader(stream);
string s = sr.ReadToEnd();
Console.WriteLine(s);
}
}
}