如何使用 ResourceHandler 使用 CefSharp ChromiumWebBrowser 从 MemoryStream 或字节数组呈现 PDF 文件?
How can I use a ResourceHandler to render a PDF file from a MemoryStream or byte array using CefSharp ChromiumWebBrowser?
我有相同的用例。但是,我在将答案的各个部分放在一起时遇到了一些麻烦。
我试过这个代码:
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()
returns 包含 PDF 文件的字节数组。但是现在我将屏幕上文件的原始内容呈现为纯文本,而不是 HTML.
如何使用缩放按钮等将内容加载为 PDF,而不是将原始内容加载为纯文本?
仔细研究之后,我意识到我只是缺少 mime 类型。
_pdfHandler.RegisterHandler(streamUri, Element.Source.ToArray(), "application/pdf");
现在 PDF 可以很好地从内存流呈现到 Web 视图中。 :)
我有相同的用例
我试过这个代码:
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()
returns 包含 PDF 文件的字节数组。但是现在我将屏幕上文件的原始内容呈现为纯文本,而不是 HTML.
如何使用缩放按钮等将内容加载为 PDF,而不是将原始内容加载为纯文本?
仔细研究之后,我意识到我只是缺少 mime 类型。
_pdfHandler.RegisterHandler(streamUri, Element.Source.ToArray(), "application/pdf");
现在 PDF 可以很好地从内存流呈现到 Web 视图中。 :)