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('.')));
                }
            }

  • 相关阅读:
    分治算法的时间复杂度研究
    c函数调用过程原理及函数栈帧分析
    Java实现蓝桥杯 算法训练 ALGO-15 旅行家的预算
    Java实现蓝桥杯 算法训练 ALGO-15 旅行家的预算
    Java实现蓝桥杯 算法训练 ALGO-15 旅行家的预算
    Java实现蓝桥杯 算法训练 ALGO-15 旅行家的预算
    Java 蓝桥杯 算法训练(VIP) 最大体积
    Java 蓝桥杯 算法训练(VIP) 最大体积
    Java 蓝桥杯 算法训练(VIP) 最大体积
    Java 蓝桥杯 算法训练(VIP) 最大体积
  • 原文地址:https://www.cnblogs.com/qhy1277/p/4962009.html
Copyright © 2011-2022 走看看