/// <summary> /// pdf转图片 /// </summary> /// <param name="dto"></param> /// <returns></returns> [AllowAnonymous] [HttpPost, Route("PdfConvertImage")] public IEnumerable<PdfConvertImageOutputDto> PdfConvertImage([FromBody]PdfConvertImageInputDto dto) { List<PdfConvertImageOutputDto> result= new List<PdfConvertImageOutputDto>(); //判断pdf路径下文件是否存在 if (System.IO.File.Exists(serverBaseUrl + dto.PdfUrl)) { //判断是否该pdf文件是否已转成过图片 if (System.IO.Directory.Exists(serverBaseUrl + @"/images/" + dto.RowGuid)) { //查找该文件夹下所有jpg图片 var files = Directory.GetFiles(serverBaseUrl + @"/images/" + dto.RowGuid, "*.jpg"); foreach (var file in files) { //将所有图片路径循环拼接返回 result.Add(new PdfConvertImageOutputDto() { ImageUrl = @"/Upload/images/" + dto.RowGuid + "/" + Path.GetFileName(file) }); } } else { //创建文件夹 Directory.CreateDirectory(serverBaseUrl + @"/images/" + dto.RowGuid); //加载pdf文件 var pdf = PdfDocument.Load(serverBaseUrl + dto.PdfUrl); var pdfpage = pdf.PageCount; var pagesizes = pdf.PageSizes; //循环pdf中的每一页,按页转成图片 for (int i = 1; i <= pdfpage; i++) { Size size = new Size(); size.Height = (int)pagesizes[(i - 1)].Height; size.Width = (int)pagesizes[(i - 1)].Width; RenderPage(serverBaseUrl + dto.PdfUrl, i, size, serverBaseUrl + @"\images\" + dto.RowGuid + "/" + i + @".jpg"); //将所有图片路径循环拼接返回 result.Add(new PdfConvertImageOutputDto() { ImageUrl = @"/Upload/images/" + dto.RowGuid + "/" + i + @".jpg" }); } } } return result; }
参考的博文:https://blog.csdn.net/touhousonic/article/details/86711506