偶遇需要解析PDF文件为单张图,此做,
http://git.oschina.net/jiailiuyan/OfficeDecoder
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Aspose.Pdf.Devices; namespace Helpers { public static class PDFHelper { /// <summary> 转换 PDF 的每一页为图片 </summary> /// <param name="pdffile"></param> /// <param name="savedirectory"></param> /// <returns></returns> public static List<string> ConvertToImages(string pdffile, string savedirectory = "") { // 返回的图片绝对路径集合 List<string> images = new List<string>(); // 获取 PDF 文件名称 var pdfname = System.IO.Path.GetFileNameWithoutExtension(pdffile); // 如果指定了保存路径,则使用传入的路径,否则在 PDF 文件的同级创建同名文件夹当作保存路径 savedirectory = string.IsNullOrWhiteSpace(savedirectory) ? System.IO.Path.GetDirectoryName(pdffile) : savedirectory; savedirectory = System.IO.Path.Combine(savedirectory, pdfname); // 防止保存的路径不存在因此创建保存文件夹 Directory.CreateDirectory(savedirectory); using (var pdfd = new Aspose.Pdf.Document(pdffile)) { var count = pdfd.Pages.Count; // Aspose.Pdf 的单页获取索引从 1 开始 for (int i = 1; i <= count; i++) { var imagefile = System.IO.Path.Combine(savedirectory, i + ".jpg"); try { //图片处理后的存放路径 using (var imageStream = new FileStream(imagefile, FileMode.Create)) { var resolution = new Resolution(100); var jpegDevice = new JpegDevice(resolution, 100); jpegDevice.Process(pdfd.Pages[i], imageStream); imageStream.Close(); images.Add(imagefile); } } catch { } } pdfd.Dispose(); } // 返回获取图片后的路径集合 return images; } } }