C#.NET 将PDF转成图片之Magick.NET(亲测可用)

C#.NET 将PDF转成图片之Magick.NET(亲测可用)

1.新建项目UnitTestProject;

2.右击项目=>>管理Nuget程序包=>Magick.NET-Q16-AnyCPU 安装最新版本;

注: Q8、Q16 分别指HDRI(高动态范围图像) 8位、HDRI 16位,至于AnyCPU、x64、x86,选择AnyCPU即可。

3.下载安装ghostscript(根据所在服务器下载对应32还是64位版本),如果不安装ghostscript,magick.net在执行Read函数读取pdf时会报错误.;

下载链接:https://ghostscript.com/download/gsdnld.html

4.加入以下方法,并添加引用 using ImageMagick;

/// <summary>
/// 将PDF所有页转换为图片并返回图片路径
/// </summary>
/// <param name=”pdfPath”>pdf文件路径</param>
/// <param name=”imgPath”>生成图片路径</param>
/// <param name=”imgName”>图片名称前缀</param>
public List<string> GetPdfAllPageImgs(string pdfPath, string imgPath, string imgName)
{
var list = new List<string>();
try
{
MagickReadSettings settings = new MagickReadSettings();
settings.Density = new Density(72, 72); //设置格式
using (MagickImageCollection images = new MagickImageCollection())
{
images.Read(pdfPath, settings);
int pageCount = images.Count;
for (int i = 0; i < pageCount; i++)
{
IMagickImage image = images[i];
image.Alpha(AlphaOption.Remove);//遇到电子签章的此属性可以解决黑屏问题
image.Format = MagickFormat.Jpeg;
string path = imgPath + $”{imgName}_{i}.jpg”;//相对路径
image.Write(path);
list.Add(path);
}
}
}
catch (Exception ex)
{

}
return list;
}

5.调用方法测试。

[TestMethod]
public void TestMethod()
{
try
{
string filepath = @”D:\PDFFF\1565265812212742552810.pdf”;
string imgpath = @”D:/PDFFF/”;
var pathList= PdfHelper.GetPdfAllPageImgs(filepath, imgpath, “imgName”);
}
catch (Exception ex)
{

}

}

分享到 :
相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注