zoukankan      html  css  js  c++  java
  • C#pdf 切割成图片

     引用

    using Ghostscript.NET;
    using Ghostscript.NET.Rasterizer;

    需要安装 exe文件

    public static GhostscriptVersionInfo _lastInstalledVersion = null;
            public static GhostscriptRasterizer _rasterizer = null;

    PdfToImages(string pdfInputPath, string imageOutputPath)

     
                    //解析度
                    int desired_x_dpi = Convert.ToInt32(96);
                    int desired_y_dpi = Convert.ToInt32(96);

      Log.writeLog("生成临时文件夹");
                    var destFile = GetFilePath(pdfInputPath);
                    Log.writeLog("复制pdf资料");
                    System.IO.File.Copy(pdfInputPath, destFile, true);
                    Log.writeLog("复制pdf资料完成");
                    if (System.IO.File.Exists(destFile))
                    {
                        try
                        {

      _lastInstalledVersion =                             GhostscriptVersionInfo.GetLastInstalledVersion(                        GhostscriptLicense.GPL | GhostscriptLicense.AFPL,                        GhostscriptLicense.GPL);

                            _rasterizer = new GhostscriptRasterizer();

                            _rasterizer.Open(destFile, _lastInstalledVersion, false);

             for (var i = 1; i <= endPageNum; i++)                  

           {                          

                 string pageFilePath = Path.Combine(imageOutputPath, imageName + "_" + i.ToString() + "." + imageFormat.ToString());

                                Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, i);  

              img.Save(pageFilePath, ImageFormat.Jpeg);

       }
                            _rasterizer.Dispose();
                        }
                        catch (Exception ex)
                        {
                            Log.writeLog("Exception:" + ex.ToString());
                            System.IO.File.Delete(destFile);
                        }
                        finally
                        {
                            Log.writeLog("finally:删除资料");
                            System.IO.File.Delete(destFile);
                            //System.IO.Direc

    }

     /// <summary>
            /// 根据源文件路径获取新重新命名的文件路径
            /// </summary>
            /// <param name="filePath"></param>
            /// <returns></returns>
            static string GetFilePath(string filePath)
            {
                if (string.IsNullOrWhiteSpace(filePath))
                {
                    return string.Empty;
                }
                else
                {
                    return string.Format("{0}{1}{2}", filePath.Substring(0, filePath.LastIndexOf('\') + 1), Guid.NewGuid().ToString("N").Replace("-", ""), filePath.Substring(filePath.LastIndexOf('.')));
                }
            }

  • 相关阅读:
    SVM学习笔记-线性支撑向量机
    阿里面试回来,想和Java程序员谈一谈
    看外国女程序员如何直播写代码
    shoeBox超实用的雪碧图(Sprite)图制作工具-使用
    Android图像处理之图形特效处理
    SMP、NUMA、MPP体系结构介绍
    TIOBE 2017 8月编程语言排行榜 后院“硝烟四起”
    Android Studio中Git和GitHub使用详解
    矩阵乘法快速幂 codevs 1574 广义斐波那契数列
    矩阵乘法 codevs 1287 矩阵乘法
  • 原文地址:https://www.cnblogs.com/qhy1277/p/4962009.html
Copyright © 2011-2022 走看看