这是用于在android移动webview容器中运行但后面具有mvc代码的混合应用程序。这就是为什么我不能使用window.open显示pdf的原因。
我需要使用iframe或嵌入,可能是要在mvc视图中显示它。
我从数据库中获取字节数据。
byte[] RptData;
SqlReportData = reader.GetSqlBytes(0);
RptData = SqlReportData.Value;
return RptData;
然后将其转换为Base64String并传入viewModel。
viewModel.PdfDataString = Convert.ToBase64String(pdfData);
我尝试了几乎所有可以找到的顶级建议,但没有一个对我有用。
Iframe src set large base64 data
how to display base64 encoded pdf?
Display ASP.NET generated pdf byte[] to web page without saving the file
<div><iframe src="" type="application/pdf"></iframe>
</div>
<div>
<embed src="" width="100%" height="100%" type="application/pdf"/>
</div>
<script>
var pdfData = '@Model.PdfDataString';
$("iframe").attr("src", 'data:application/pdf;base64,{0}'.replace('{0}', pdfData));
$("embed").attr("src", 'data:application/pdf;base64,{0}'.replace('{0}', pdfData));
</script>
我想在Mvc视图上将此Base64String数据显示为pdf。 我正在尝试使用iframe并同时嵌入两者。 iframe显示空白,并且未显示嵌入。
Chrome调试器显示:
资源被解释为文档,但以MIME类型application / pdf传输:“ data:application / pdf; base64,JVBERi0xLjcKCjQgMCB ....(ShowMore 1.6MB)