Sarim Mughal Ответов: 1

Как скрыть crystal report в bmp и отправить ответ в web API с помощью ASP.NET с#


Я разработал веб-API в ASP.NET C#, создайте Crystal Report и преобразуйте его в pdf-поток и отправьте в ответ по httpResponseMessage, но я хочу, чтобы он преобразовал crystal report в формат изображения bmp и отправил клиенту в ответ.

Я хочу преобразовать поток crystal report в формат изображения bmp и отправить в ответ
опция: сохраните изображение на сервере и отправьте путь к изображению в ответ api.

Я хочу этого без использования какой-либо сторонней библиотеки

Что я уже пробовал:

//Привязка отчета Crystal по списку<model> Rlist
var rd = new ReportDocument();
                    rd.Load(Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/Reports"), "Report.rpt"));
rd.SetDataSource(Rlist);
Stream stream = rd.ExportToStream(ExportFormatType.PortableDocFormat);
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);

// И отправка в ответ по
public HttpResponseMessage Generate(MemoryStream ms)
       {
           var result = new HttpResponseMessage(HttpStatusCode.OK){
               Content = new ByteArrayContent(ms.ToArray())
                   };
           result.Content.Headers.ContentDisposition =
               new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") {
               FileName = "Report.pdf"
               };
           result.Content.Headers.ContentType =
               new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
           return result;
       }

//В ответе API я получаю
"Content": {
            "Headers": [
                {
                    "Key": "Content-Disposition",
                    "Value": [
                        "attachment; filename=invoice.pdf"
                    ]
                },
                {
                    "Key": "Content-Type",
                    "Value": [
                        "application/octet-stream"
                    ]
                }
            ]
        },

F-ES Sitecore

Я бы начал с того, что погуглил "конвертировать pdf-файл в изображение c#"

Maciej Los

Почему? В каком аспекте растровое изображение лучше pdf-файла?

Sarim Mughal

Мой API-клиент имеет приложение android POS на устройстве Z90, и устройство позволяет печатать только растровые png и jpg. мое требование состоит в том, чтобы отправить bitmap при успешном сохранении в API.

Maciej Los

ОК. Спасибо за объяснение.

1 Ответов

Рейтинг:
1

MadMyche

Желания, возможности и реальность могут быть совершенно разными.

1. Вы хотите конвертировать в формат BMP и использовать его в интернете. Хотя он поддерживается большинством основных браузеров, это один из наименее желательных форматов изображений для использования в интернете, поскольку он большой и громоздкий. Было бы гораздо более желательно использовать что-то вроде PNG или JPG

2. Вы не хотите использовать стороннюю библиотеку. Единственный реальный вариант, который у вас есть здесь, - это написать свою собственную библиотеку. Если вы хотите пойти по этому пути, то я бы предложил найти стороннюю библиотеку с открытым исходным кодом, в которой есть доступный код, и посмотреть, насколько он вовлечен. Затем создайте свой собственный, основанный на том, что вам нужно.


Maciej Los

5ed!