Печать отчетов SSRS из проекта службы WorkerC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Печать отчетов SSRS из проекта службы Worker

Сообщение Anonymous »

Я работаю над проектом рабочей службы, и у меня возникла проблема: я хочу распечатать отчет, полученный с сервера SSRS. Проблема на данный момент заключается в том, что я использую System.Drawing.Graphics для рисования документа из массива байтов, который преобразуется в поток, и поток добавляется в метафайл, метафайл необходимо преобразовать в растровое изображение, и растровое изображение передается в Graphics.DrawImage для печати и завершения рисования документа. Я продолжаю сталкиваться с проблемой в метафайле, из-за которой выдается эта ошибка: «System.Runtime.InteropServices.ExternalException: 'В GDI+ произошла общая ошибка».
Мой код выглядит следующим образом:

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

var report = GetReport();

using (MemoryStream stream = new MemoryStream(report))
{
if (stream != null && stream.Length > 0)
{
using (metafile = new Metafile(stream))
{
// Convert Metafile to Bitmap
bitmap = new Bitmap(metafile.Width,metafile.Height);
using (Graphics g = Graphics.FromImage(bitmap))
{
g.DrawImage(metafile, new Point(0, 0));
}
// Configure Print document to be printed
printDocument.PrinterSettings.PrinterName = "printerName";

printDocument.PrintPage += (sender, args) =>
{
args.Graphics.DrawImage(bitmap, args.PageBounds);
};
}
}
}

// Print
printDocument.Print();
полная информация об ошибке следующая:

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

System.Runtime.InteropServices.ExternalException
HResult=0x80004005
Message=A generic error occurred in GDI+.
Source=System.Drawing.Common
StackTrace:
at System.Drawing.SafeNativeMethods.Gdip.CheckStatus(Int32 status)
at System.Drawing.Imaging.Metafile..ctor(Stream stream)
Любая помощь будет высоко оценена, даже если это другой способ распечатать файл из SSRS.
Я пробовал использовать ReportViewer вместо URL-адреса SSRS чтобы избежать использования потока, возвращаемого URL-адресом.

Подробнее здесь: https://stackoverflow.com/questions/787 ... ce-project
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Требуется ли внедрение зависимостей TelemetryClient в Worker.cs для приложения-службы Worker Insights в C#?
    Гость » » в форуме C#
    0 Ответы
    80 Просмотры
    Последнее сообщение Гость
  • Требуется ли внедрение зависимостей TelemetryClient в Worker.cs для приложения-службы Worker Insights в C#?
    Гость » » в форуме C#
    0 Ответы
    85 Просмотры
    Последнее сообщение Гость
  • Отчеты SSRS — возврат списка отчетов.
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Объединение отчетов, созданных в формате PDF с помощью SSRS и ASP.NET.
    Anonymous » » в форуме C#
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Создание файлов отчетов SSRS в Parallel.ForEachAsync не имеет имен файлов, соответствующих их содержимому на C#.NET 8. М
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»