在MVC中将PDF(存储为BLOB)显示为图像

时间:2013-10-01 04:27:16

标签: asp.net-mvc pdf partial-views actionresult filecontentresult

我必须在局部视图中显示PDF(在SQL Server表中存储为BLOB)。我正在为表中存储为BLOB的“.jpeg”图像做同样的事情。图像正在显示,但PDF不是。我的控制器中有以下代码:

[Authorize]
public ActionResult Show3LeadImage(int id)
{
    Byte[] imageData = null;
    using (var scope = new PatientPersistenceScope())
    {
         searchRequest leadRequest = new searchRequest();
         leadRequest.CaseNumber = id;
         var mrx12LeadBitmap = _mrxSearchService.Get12Lead(leadRequest);
         imageData = mrx12LeadBitmap.Data12Leads[0].mrx3Lead;
         scope.Done();
    }
   return File(imageData,"image/png");//I have tried "FileContentResult,but it didnt work
 }

部分视图(.ascx)中的代码如下所示:

<object data='<%= Url.Action("Show3LeadImage", "CareRecord", new { id = Model.CareRecord.CaseNumber}) %>' type="application/pdf" style="width: 721px; height: 800px;" ></object>

我无法访问物理文件.... BLOB就是我的全部。

甚至可以在局部视图中将PDF显示为图像吗?我看到很多文章解释了如何在局部视图中下载PDF文件。但我不希望我的文件可以下载。这个功能是可以实现的,还是我想做一些不可能的事情?

1 个答案:

答案 0 :(得分:1)

将PDF转换为图像并不像将其作为PNG一样简单。您需要使用库来转换它,例如ImageMagick或ABCPdf(示例:Convert PDF to image with high resolution

如果您想将PDF嵌入HTML中,有几种方法可以实现,即Recommended way to embed PDF in HTML?