Как я могу использовать ResourceHandler для визуализации PDF-файла из MemoryStream или массива байтов с помощью CefSharp ChromiumWebBrowser? - PullRequest
0 голосов
/ 07 августа 2020

У меня такой же вариант использования , как указано в этом вопросе . Однако у меня возникли проблемы со сложением фрагментов ответа.

Я пробовал этот код:

private async Task LoadPdfFromStream()
{
    if (Element != null && Element.Source != null)
    {
        if (_webView.ResourceRequestHandlerFactory == null)
        {
            _webView.ResourceRequestHandlerFactory = new ResourceRequestHandlerFactory();
        }

        var handler = _webView.ResourceRequestHandlerFactory as ResourceRequestHandlerFactory;

        if (handler != null)
        {
            var ret = handler.RegisterHandler("file:///loadfromstream", Element.Source.ToArray());
        }

        _webView.Address = "file:///loadfromstream";
    }
}

Element.Source.ToArray() возвращает массив байтов, содержащий файл PDF. Однако сейчас я визуализирую необработанное содержимое файла на экране как чистый текст, а не как HTML.

Как я могу загрузить содержимое как PDF с помощью кнопок масштабирования и et c, вместо исходного содержимого в виде чистого текста?

1 Ответ

0 голосов
/ 07 августа 2020

Еще немного изучив его, я понял, что мне просто не хватает mime-типа.

_pdfHandler.RegisterHandler(streamUri, Element.Source.ToArray(), "application/pdf");

Теперь PDF-файл отлично визуализируется из потока памяти в веб-представление. :)

...