代码如下:
public static Dictionary<int, string> ConvertPdfToImage(string pdfInputPath, string imageOutputPath)
{
Dictionary<int, string> resultList = new Dictionary<int, string>();
using (var document = PdfDocument.Load(pdfInputPath))
{
try
{
int pageCount = document.PageCount;
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++)
{
var dpi = 300;
using (var image = document.Render(pageIndex, dpi, dpi, PdfRenderFlags.CorrectFromDpi))
{
var encoder = ImageCodecInfo.GetImageEncoders().First(p => p.FormatID == ImageFormat.Jpeg.Guid);
string imageName = DateTime.Now.ToString("HHmmssfff") + "_" + pageIndex + ".png";
var encParams = new EncoderParameters(1);
encParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 10L);
if (!Directory.Exists(imageOutputPath))
Directory.CreateDirectory(imageOutputPath);
LogHelper.WriteLog("ConvertPdfToImage->" + imageOutputPath + imageName);
image.Save(imageOutputPath + imageName);
encParams.Dispose();
resultList.Add(pageIndex + 1, imageName);
}
}
}
catch (Exception ex)
{
var code = Marshal.GetLastWin32Error();
LogHelper.WriteLog($"ConvertPdfToImage=>pdfPath:{pdfInputPath},错误消息{ex.Message},报错异常信息为:{code.ToString()}");
}
}
return resultList;
}