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

网络上找了一堆博文,实验之后基本上很少能够有用的,很少能提供完整的Demo和Method,故写本篇文章来做记录。

1、新建项目UnitTestProject

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

注: Q8 Q16 指HDRI分别表示8位 和16位,AnyCPU、x64、x86 指计算机是32位还是64位系统,选择AnyCPU

3、下载安装ghostscript(根据所在服务器下载对应32还是64位版本)

  http://ghostscript.com/download/gsdnld.html

  如果不安装ghostscript,magick.net在执行Read函数读取pdf时会报错误.

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方法中调用测试

        [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)
            {
 
            }
 
        }

6、右击TestMethod方法==>调试测试(注意打上断点)

请根据自己需要进行函数改写,本文只是示例,加入文件存储到云、文件检测等等

Demo地址(CSDN好像不可以设置免费下载了。。。有点不清真啊)
https://download.csdn.net/download/uianqian/11926634

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值