/// <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