如何在局部视图中将PDF显示为图像(ASP.NET MVC)?

时间:2016-11-30 15:59:26

标签: c# asp.net-mvc pdf bitmap

好。这就是我所拥有的。我有一个pdf文件,转换为byte []并保存到Db。 我想要做的是将pdf文件转换为图像并将其作为弹出窗口显示在局部视图中。 我能够做到这一点,但有几个问题。 1-转换后的图像质量较差 2-过程很慢

这是我的代码(我使用TallComponents.PDF.Rasterizer库进行转换,如果你们推荐一个更好的库,请不要介意)

var doc = service.GetAttachmentById(documentId);
            ViewAttachmentViewModel model = new ViewAttachmentViewModel();
            if (doc.Extension.ToLower().Trim() == ".pdf")
            {
                // convert pdf to image
                try
                {
                    Bitmap bitmap;
                    using (Stream stream = new MemoryStream(doc.Content))
                    {
                        Document m = new Document(stream);
                        Page p = m.Pages[0];
                        bitmap = new Bitmap((int)p.Width, (int)p.Height);
                        using (Graphics g = Graphics.FromImage(bitmap))
                        {
                            p.Draw(g);
                        }
                    }
                    ImageConverter converter = new ImageConverter();
                    byte[] cont = (byte[])converter.ConvertTo(bitmap, typeof(byte[]));
                    model = new ViewAttachmentViewModel
                    {
                        Id = documentId,
                        Content = cont,
                        FileName = doc.Title
                    };

                }
                catch (Exception ex)
                {
                    // handle exception here;
                }
            }
            else
            {
                model = new ViewAttachmentViewModel
                {
                    Id = documentId,
                    Content = doc.Content,
                    FileName = doc.Title
                };
            }
            return PartialView("_AttachmentPopupViewer", model);

局部视图:

  @{
        var base64 = Convert.ToBase64String(Model.Content);
        var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
    }

    <img src="@imgSrc" />

1 个答案:

答案 0 :(得分:0)

我在我的项目中使用PDFJS。它运作得很好。试一试

它不是将pdf转换为图像,而是在您的网站中解析和呈现PDF的工具