[英]How to display PDFs as images in a partial view (ASP.NET MVC)?
好的。 这就是我所拥有的。 我有一个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" />
我在项目中使用PDFJS 。 它运作良好。 试试看
它不是将pdf转换为图像,而是在您的网站中解析和呈现PDF的工具
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.