这适用于在 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);
我尝试了很多我能找到的顶级建议,但没有一个对我有用。
将 ASP.NET 生成的 pdf byte[] 显示到网页而不保存文件
<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)