引用

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#pdf 切割成图片的更多相关文章

  1. C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)

    原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常 ...

  2. C#技术分享【PDF转换成图片——11种方案】

    1.[iTextSharp.dll],C# 开源PDF处理工具,可以任意操作PDF,并可以提取PDF中的文字和图片,但不能直接将PDF转换成图片. DLL和源码 下载地址:http://downloa ...

  3. 在linux环境下使用icepdf或pdfbox将pdf转化成图片是乱码解决

    在linux环境下使用icepdf或pdfbox将pdf转化成图片是出现乱码,网上查发下是itextpdf生成pdf引用"STSong-Light"字体而linux环境下没有这个字 ...

  4. 【PyMuPDF和pdf2image】Python将PDF转成图片

    前言: 在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python ...

  5. C# Asp.Net 实现PPT/PDF转成图片(不依赖office)

    最近公司有个需求,将PPT课件转成图片列表,然后在前端展示成轮播图,于是一开始通过Microsoft.Office.Interop.PowerPoint包实现了这个需求具体代码如下: /// < ...

  6. php 将pdf转成图片且将图片拼接

    说明: 1.pdf转图片通过安装php扩展imagick实现. 2.由于windows扩展安装的一系列问题,建议在linux环境开发,windows大伙可以尝试安装. 3.为Centos 安装Imag ...

  7. Java PDF转换成图片并输出给前台展示

    首先需要导入所需工具类 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>fo ...

  8. pdf 切割成圖片的方法

    /// <summary>         /// 将PDF文档转换为图片的方法         /// </summary>         /// <param na ...

  9. pdf转成图片

    http://blog.csdn.net/wydhao123/article/details/51596028 jar commons-logging.jar. pdfbox-2.0.1.jar.fo ...

随机推荐

  1. 未能加载文件或程序集 Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad

    没有 microsoft.web.infrastructure.dll 文件. 解决方式: ,第一种:在所发布的项目文件里面的 bin 文件目录下,添加 microsoft.web.infrastru ...

  2. (document).height()、$(document).scrollTop()

    (document).height().$(document).scrollTop(),有需要的朋友可以参考下. jQuery(window).height()代表了当前可见区域的大小,而jQuery ...

  3. AI(二):人脸识别

    微软提供的人脸识别服务可检测图片中一个或者多个人脸,并为人脸标记出边框,同时还可获得基于机器学习技术做出的面部特征预测.可支持的人脸功能有:年龄.性别.头部姿态.微笑检测.胡须检测以及27个面部重要特 ...

  4. nodemon配置文件简单整理

    文件名称nodemon.json 内容如下: { "restartable":"rs",//重启的命令,默认是 rs "ignore":[& ...

  5. spring mvc 用freemarker实现/user/edit?id=${id}=${type} 的替换

    java 中实现/user/edit?id=${id}=${type} 的替换; 引入包: freemark.jar  ,以及 类代码如下: public class FreeMarkerTextTe ...

  6. bzoj1091: [SCOI2003]切割多边形

    Description 有一个凸p边形(p<=8),我们希望通过切割得到它.一开始的时候,你有一个n*m的矩形,即它的四角的坐标分别为(0,0), (0,m), (n,0), (n,m).每次你 ...

  7. Google Tensorflow 源码编译(二):Bazel<v0.1.0>

    这几天终于把tensorflow安装上了,中间遇到过不少的问题,这里记录下来.供大家想源码安装的参考. 安装环境:POWER8处理器,Docker容器Ubuntu14.04镜像. Build Baze ...

  8. float、定位、inline-block、兼容性需注意的特性总结

    inline-block 特性: 1.块在一排显示 2.内联支持宽高 3.默认内容撑开宽度 4.标签之间的换行间隙被解析(问题)[相当字体大小的一半] 5.ie6 ie7不支持块属性标签的inline ...

  9. OAF_开发系列08_实现OAF通过Popup参数式弹出窗口(案例)

    20150711 Created By BaoXinjian

  10. Spring+Quartz(定时任务)

    此处用到的Quartz版本是quartz-2.2.3 官方网站:http://www.opensymphony.com/quartz 首先先介绍用到的几个关键类:scheduler任务调度.Job任务 ...