Вы можете получить изображение только для одной страницы из элемента управления ReportViewer. Что вы можете сделать, это сгенерировать изображения для всех страниц - либо изменив свойство CurrentPage
элемента управления, либо воспользовавшись перегрузкой Render , которая принимает CreateStreamCallback, например
private Stream LocalReportCreateStreamCallback(string name, string extension,
Encoding encoding, string mimeType,bool willSeek)
{
var stream = new MemoryStream();
m_pages.Add(stream);
return stream;
}
В этом случае метод Render продолжает вызывать обратный вызов до тех пор, пока страницы не будут завершены, и, таким образом, ваша коллекция m_pages
будет заполнена данными для всех изображений страниц. Теперь вы, вероятно, можете сжать все эти изображения и отправить через ответ, или вы можете использовать некоторую библиотеку манипуляций с изображениями, чтобы сшить эти изображения вместе, чтобы сформировать одно большое изображение для возврата назад (не очень хорошая идея, потому что это создаст большую нагрузку на ваш сервер ).
Как правило, если вы собираетесь создать вид перед просмотром, то хорошей идеей будет кэширование этих изображений и возврат HTML, который будет содержать гиперссылки на эти изображения.