C# 第三方DLL,可以实现PDF转图片,支持32位系统、64位系统

itextsharp.dll,是一个开源的在C#中用来生成PDF文档的库文件,不少C#爱好者用它制作出了PDF文档生成器。使用时只需在你的C#项目中添加引入此组件即可,使用方法网上有很多,自己查阅一下。如果系统提示“没有找到itextsharp.dll”文件,或者“缺少itextsharp.dll”等错误信息,您可下载本文件后,将其注册为组件或复制到相关目录,即可解决出错提示!

DLL 下载地址:http://download.csdn.net/download/wumin940590725/6470151

 

1、【O2S.Components.PDFRender4NET.dll】,第三方DLL,可以实现PDF转图片,支持32位系统、64位系统
官方试用版的dll左上角会有一排红色水印,下面这个是破解版的没有水印,主使用了一年多基本没有出过问题,推荐使用。
DLL 下载地址:http://download.csdn.net/detail/shi0090/4066107
测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068558

 

2、【Acrobat.dll】,Adobe官方提供的接口,可以实现PDF转图片。这个方法需要安装Adobe Acrobat X Pro,从安装文件找到Acrobat.dll引用到项目中。毕竟是Adobe官方提供的接口,其转换效率要比其他的DLL要快多了,而且更可靠一些,但是在IIS下运行会比较麻烦(主要是不支持多线程,所以在iis下调用失败,群里有童鞋用wcf去转换,然后从web层调用wcf)
如果对转换速度、图片质量要求很高的童鞋,可以参考此方案,但是实现过程太麻烦,大家自己权衡,撸主对此方法并没有深入研究了。
测试工程 下载地址: http://download.csdn.net/detail/shi0090/4068502
参考地址:http://www.codeproject.com/Articles/5887/Generate-Thumbnail-Images-from-PDF-Documents

 

3、【PDFLibNet.dll】,第三方DLL,只支持32位系统,可以实现PDF转图片,下面这个版本没有水印。
DLL 下载地址:http://download.csdn.net/detail/shi0090/4066096
测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068522

 

4、【SautinSoft.PdfFocus.dll】,第三方DLL,可以实现PDF转图片,但转出来的图片左上角有一排红色水印。
DLL 下载地址:http://download.csdn.net/detail/shi0090/4066111
测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068561

 

5、【TallComponents.PDF.Rasterizer.dll】,第三方DLL,可以实现PDF转图片,但转出来的图片有个较大的水印。
DLL 下载地址:http://download.csdn.net/detail/shi0090/4066112
测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068563

 

6、【Apitron.PDF.Rasterizer.dll】,第三方DLL,可以实现PDF转图片,但转出来的图片有个较大的红色水印。
DLL 下载地址:http://download.csdn.net/detail/shi0090/5814803
测试工程 下载地址:http://download.csdn.net/detail/shi0090/5814857

 

7、【XpdfRasterizer.dll】,第三方DLL,可以实现PDF转图片。
DLL 下载地址:http://download.csdn.net/detail/shi0090/4066115
测试工程 下载地址:这个弄不见了,如果使用要使用这个的话,一定要注意Regsvr32注册,要不然转换会失败的。

 

8、【abcpdf.dll】,第三方DLL,可以实现PDF转图片,但是需要安装abcpdf,所以使用起来不算太放方便。
DLL 下载地址:http://download.csdn.net/detail/shi0090/4066144
测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068564

 

9、【Ghostscript】,第三方DLL,可以实现PDF转图片,只支持32位系统,貌似网上很多人都会采用这个方法(据说功能强大),个人觉得代码太麻烦没有采用,没有深入研究。
DLL  下载地址:http://download.csdn.net/detail/shi0090/4066005
测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068486
参考地址:http://www.codeproject.com/Articles/317700/Convert-a-PDF-into-a-series-of-images-using-Csharp.aspx
参考地址:http://www.codeproject.com/Articles/32274/How-To-Convert-PDF-to-Image-Using-Ghostscript-API

 

10、【ImageMagick】,C语言开源PDF处理工具,可以将实现PDF转换图片,因为撸主使用的C#,所以C语言的工具就没有深入研究了。
DLL和源码 下载地址:http://download.csdn.net/detail/shi0090/4066040

 

11、【iTextSharp.dll】,C# 开源PDF处理工具,可以任意操作PDF,并可以提取PDF中的文字和图片,但不能直接将PDF转换成图片。
DLL和源码 下载地址:http://download.csdn.net/detail/shi0090/4065982
中文帮助文档 下载地址:http://download.csdn.net/detail/shi0090/4065986
提取文字测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068429
提取图片测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068428
官方网站:http://itextpdf.com/

 

12、【PdfSharp.dll】,C# 开源PDF处理工具,可以任意操作PDF,也可以实现从PDF提取图片,但不能直接将PDF转换成图片。
DLL和源码 下载地址:http://download.csdn.net/detail/shi0090/4066060
提取图片测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068448 

 

以上两个开源C#工具都可以很好处理PDF文档,但不满足我的要求直接把PDF转成IMAGE。

 

13、QQ群里有人推荐【PDFToX.dll】速度和质量都不错,就是不太稳定,有兴趣的朋友可以自行研究一下~
官方网站:http://www.ycanpdf.cn/
官方下载:http://www.ycanpdf.cn/software/PDFtoX.rar

 

在C#中使用O2S.Components.PDFRender4NET.dll把PDF转换成图片的具体代码

方法/步骤 

1

把 O2S.Components.PDFRender4NET.dll添加到引用中(下载地址:https://www.so.com/s?q=O2S.Components.PDFRender4NET.dll&src=se_zoned)

2

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using O2S.Components.PDFRender4NET;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

namespace O2S.Components.PDFRender4NET.pdf2image

{

    public static class Program

    {

        public enum Definition

        {

            One = 1, Two = 2, Three = 3,

            Four = 4, Five = 5, Six = 6,

            Seven = 7, Eight = 8,

            Nine = 9, Ten = 10

        }

        /// <summary>

        /// 将PDF文档转换为图片的方法

        /// </summary>

        /// <param name="pdfInputPath">PDF文件路径</param>

        /// <param name="imageOutputPath">图片输出路径</param>

        /// <param name="imageName">生成图片的名字</param>

        /// <param name="startPageNum">从PDF文档的第几页开始转换</param>

        /// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>

        /// <param name="imageFormat">设置所需图片格式</param>

        /// <param name="definition">设置图片的清晰度,数字越大越清晰</param>

        public static void ConvertPDF2Image(string pdfInputPath, string imageOutputPath,

            string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat, Definition definition)

        {

            PDFFile pdfFile = PDFFile.Open(pdfInputPath);

            if (!Directory.Exists(imageOutputPath))

            {

                Directory.CreateDirectory(imageOutputPath);

            }

            // validate pageNum

            if (startPageNum <= 0)

            {

                startPageNum = 1;

            }

            if (endPageNum > pdfFile.PageCount)

            {

                endPageNum = pdfFile.PageCount;

            }

            if (startPageNum > endPageNum)

            {

                int tempPageNum = startPageNum;

                startPageNum = endPageNum;

                endPageNum = startPageNum;

            }

            // start to convert each page

            for (int i = startPageNum; i <= endPageNum; i++)

            {

                Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);

                pageImage.Save(imageOutputPath + imageName + i.ToString() + "." + imageFormat.ToString(), imageFormat);

                pageImage.Dispose();

            }

            pdfFile.Dispose();

        }

        public static void Main(string[] args)

        {

            ConvertPDF2Image("F:\\Events.pdf", "F:\\", "A", 1, 5, ImageFormat.Jpeg, Definition.One);

        }

    }

}

posted @ 2016-06-16 09:58  龙骑科技  阅读(2800)  评论(0编辑  收藏  举报