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

  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/qhy1277/p/4962009.html
Copyright © 2011-2022 走看看