网站首页 博客 C#将pdf转换成图片
由于需要用到Aspose.Pdf.dll,所以先添加引用

属性和函数定义
private string current_fullpath = ""; //文件完整路径
private string current_dirname = ""; //文件所在目录
private string current_filename = ""; //文件名(不包含后缀)
private string current_fileext = ""; //文件后缀
private int current_totalpage = 0; //转换后的图片数量
private string office2ext = "png"; //转换后的图片保存类型
private string logtext; //日志信息
//将Pdf转换成图片
private void ConvertPdf2Image()
{
Aspose.Pdf.Document pdf = null;
try
{
pdf = new Aspose.Pdf.Document(this.current_fullpath);
}
catch (Exception e)
{
this.logtext = ", " + e.Message + "。";
messagetextBox.AppendText(this.logtext);
messagetextBox.ScrollToCaret();
}
if (pdf != null)
{
this.current_totalpage = pdf.Pages.Count;
for (int i = 1; i <= pdf.Pages.Count; i++)
{
using (FileStream imageStream = new FileStream(this.current_dirname + "\\" + this.current_filename + "_" + i + "." + this.office2ext, FileMode.Create))
{
try
{
Aspose.Pdf.Devices.Resolution resolution = new Aspose.Pdf.Devices.Resolution(100);
Aspose.Pdf.Devices.PngDevice pngDevice = new Aspose.Pdf.Devices.PngDevice(resolution);
pngDevice.Process(pdf.Pages[i], imageStream);
imageStream.Close();
}
catch (Exception e)
{
this.logtext = ", " + e.Message + ", 第"+ i +"页转换失败。";
messagetextBox.AppendText(this.logtext);
messagetextBox.ScrollToCaret();
}
}
}
}
else
{
this.logtext = ", 文件无效或者被加密。";
messagetextBox.AppendText(this.logtext);
messagetextBox.ScrollToCaret();
}
}调用方法:
this.current_fullpath = "E:/file/test.pdf"; //文件完整路径
this.current_fullpath = Path.GetFullPath(this.current_fullpath.Replace("/", "\\\\")); //斜杠替换
this.current_dirname = Path.GetDirectoryName(this.current_fullpath); //文件所在目录
this.current_filename = Path.GetFileNameWithoutExtension(this.current_fullpath); //文件名(不包含后缀)
this.current_fileext = "pdf"; //文件后缀
this.ConvertPdf2Image();