上传的文件是PDF,需要在获取并在页面上查看图片。在NuGet上看到Magick.NET可以实现。
项目引用Maigck.NET-Q16-AnyCPU. 或者通过NuGet安装。这里需要注意的是如果是web网站需要将IIS进程的32位开启。
try { //设置dll文件的目录 string DLLLibPath = AppDomain.CurrentDomain.BaseDirectory; string dlllib = DLLLibPath.Substring(0, DLLLibPath.TrimEnd('\\').LastIndexOf('\\') + 1) + "ExtraDLLusing"; MagickNET.SetGhostscriptDirectory(dlllib); MagickReadSettings setting = new MagickReadSettings(); // 设置图片放缩的比例50-300 setting.Density = new Density(100); using (MagickImageCollection images = new MagickImageCollection()) { // 读取二进制数组中的文件 images.Read(bytePdf, setting); int i = 0; foreach (MagickImage vertical in images) { ++i; vertical.Write(ImgPath + "/" + sku + "_"+ NewName + "_" + i + ".jpg"); } //将PDF中所有图片放到一张图片中 //using (MagickImage vertical = (MagickImage)images.AppendVertically()) //{ // vertical.Write(ImgPath); // //byte[] ReusltByte = File.ReadAllBytes(ImgPath); // return true; //} } } catch (Exception ex) { context.Response.Write( ex.ToString()); } finally { //File.Delete(ImgPath); }
代码中有一段设置dll目录的代码。是因为Magick通过Adobe的gsdll32.dll实现的,不需要引用到项目中,只需要设置一下路径就可以。
dll下载方式:可以在NuGet上搜索ghostscript,安装一下。如果项目不是类库无法安装,但是可以通过安装动作,将dll下载下来。或者通过其他渠道下载。