Почему иногда я получаю сообщение об ошибке в службах Reporting Services при экспорте отчета, содержащего изображения .jpg, в MS Word - PullRequest
2 голосов
/ 18 сентября 2009

При создании отчета с использованием SQL Server Reporting Services 2008 (SP1), в котором используются изображения .jpg, иногда при экспорте отчета в слово возникает следующая ошибка.

Index was outside the bounds of the array. 
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.Exception: Index was outside the bounds of the array.

1 Ответ

3 голосов
/ 18 сентября 2009

Обсудив это с поддержкой Microsoft (полезный глава под названием Mikael Ljunghorn), выяснилось, что это связано с тем, кодируется ли изображение .jpg, которое вы используете в своем отчете, с использованием «прогрессивной» кодировки.

Чтобы этого не произошло, постарайтесь не использовать в своем отчете изображения с прогрессивной кодировкой .jpg.

Микаэль также предложил следующий обходной путь для преобразования изображения jpg в png, обходя проблему преобразования в слове:

1)
Добавьте этот пользовательский блок кода через окно «Отчет»> «Свойства отчета»> «Код».

Функция ConvertToPNG (ByVal bytes As Byte ()) As Byte () Dim inStream As New System.IO.MemoryStream (байты) Dim BMP как новый System.Drawing.Bitmap (inStream) Dim outStream As New System.IO.MemoryStream () bmp.Save (outStream, System.Drawing.Imaging.ImageFormat.PNG) Вернуть outStream.GetBuffer () Конечная функция

2)
Оберните выражение значения образа базы данных в этом вызове: = Code.ConvertToPNG (Fields! ImageBlobField.Value)

...