我正在尝试将PDF文件转换为图像,但是我只转换了第一页。这就是我的资料。代码隐藏:
[HttpPost]
public ActionResult UploadPdf(HttpPostedFileBase file)
{
MemoryStream target = new MemoryStream();
file.InputStream.CopyTo(target);
byte[] data = target.ToArray();
MagickReadSettings settings = new MagickReadSettings();
settings.Density = new Density(300, 300);
MemoryStream convertedFile = new MemoryStream();
List<ImageModel> model = new List<ImageModel>();
using (MagickImageCollection images = new MagickImageCollection())
{
images.Read(data,settings); // Read PDF file
foreach (MagickImage image in images)
{
ImageModel innerModle = new ImageModel();
image.Write(convertedFile, MagickFormat.Png);
byte[] data2 = convertedFile.ToArray();
innerModle.Image = data2;
model.Add(innerModle);
}
}
return View(model);
}查看模型:
public class ImageModel
{
public byte[] Image{ get; set; }
}查看:
@model List<DocumentViewerPoc.Models.ImageModel>
@foreach (var item in Model)
{
var base64 = Convert.ToBase64String(item.Image);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
<img src="@imgSrc" />
}我试着使用convertedFile.Flush();,但这对我来说并不起作用。这里我漏掉了什么?谢谢:)
发布于 2017-09-06 16:54:11
在下面更改您的代码:
[HttpPost]
public ActionResult UploadPdf(HttpPostedFileBase file)
{
MemoryStream target = new MemoryStream();
file.InputStream.CopyTo(target);
byte[] data = target.ToArray();
MagickReadSettings settings = new MagickReadSettings();
settings.Density = new Density(300, 300);
List<ImageModel> model = new List<ImageModel>();
using (MagickImageCollection images = new MagickImageCollection())
{
images.Read(data,settings); // Read PDF file
foreach (MagickImage image in images)
{
MemoryStream convertedFile = new MemoryStream();
ImageModel innerModle = new ImageModel();
image.Write(convertedFile, MagickFormat.Png);
byte[] data2 = convertedFile.ToArray();
innerModle.Image = data2;
model.Add(innerModle);
}
}
return View(model);
}https://stackoverflow.com/questions/40897027
复制相似问题