c# - 使用 html5 将 byte[] 显示为 pdf

标签 c# html pdf asp.net-mvc-4 razor

嗨,我有一个大问题。 我有一个来自 Wcf 服务的 byte[] receveid。字节数组表示一个 pdf 文件。 在 Controller 中,我想这样做:

PDFDto pdfDTO = new PDFDTO();
pdfDTO.pdfInBytes = pdfInBytes; //the byte array representing pdf
return PartialView("PopupPDF,pdfDTO);

在 View 中我想这样做:

      <object data="@Model.pdfInBytes" width="900" height="600" type="application/pdf"> </object>

但似乎不正确。 我在整个互联网上搜索过,有很多关于这个问题的帖子,但没有一个完全符合我的情况。 你有什么想法吗?非常感谢!

最佳答案

我建议在 Controller 上创建另一个操作 designed specifically for rendering the PDF data .然后只需在 data 属性中引用它即可:

data="@Url.Action("GetPdf", "PDF")"

我不确定您能否在 DOM 中转储原始 PDF 数据而不会遇到某种编码问题。尽管我从未尝试过,但您也许可以像图像一样做。但是,为了演示和图像看起来像:

src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"

因此,假设可以完成相同的操作,它可能如下所示:

@{
  String base64EncodedPdf = System.Convert.ToBase64String(Model.pdfInBytes);
}

@* ... *@
<object data="data:application/pdf;base64,@base64EncodedPdf"
        width="900" height="600" type="application/pdf"></object>

不过,我仍然坚持我最初的回应,创建一个新的 Action 。

关于c# - 使用 html5 将 byte[] 显示为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276392/

相关文章:

javascript - jQuery:动态 HTML 维度

c# - 每个 session 允许的最大请求异常 - 解决方法

c# - 显示 ICollectionView 的前 X 项

c# - 根据点击事件渲染局部 View

html - django 为未选中的复选框保存一个值

html - 如何让内容 div 跨越页面的剩余高度而不滚动?

c# - 用唯一值替换字符串中单词的每个实例

c# - 在 C# 中打印 Form/UserControl

python - 如何使用 python-pdfkit 中的 from_string 生成带有非 ascii 字符的 PDF

java - 作为电子邮件附件发送的 PDF 文件已损坏 (java)