PDF TO IMAGE PFD转图片
搞一个一天的pdf转图片,网上都是些操蛋的代码,和dll,都是12年以前的东西,实在没有能用的东西,总结下网上这些操蛋的事
1,能找到dll,还有某人总结10种,11种方案,还有稳定运行一年多,打赏博主,看的热血沸腾的,拿过来一用各种不能用各种报错!!!
2,在国外网站搜索了一圈,确实又能用的dll,可是生成的不全,或者生成出来还都有红色水印,真是蛋疼
3,各个论坛都找不到新鲜的能用的东西,有的还专门成立了公司,做pdf转图片。
搞了一天,真是不甘心,晚上又搞了会,无意间看到了magick,而且他们还是开源的国外项目,我曹真是太好了,第二天来公司,试用了下立马搞定了,还挺好用,稳定输出。。。下面看怎么用这个东西
1,建立一个控制台应用程序,右键nuget,搜索magick,安装q16,anycpu,这个应用就添加到了引用中。然后在控制台中放上这段代码
class Program { static void Main(string[] args) { MagickNET.SetGhostscriptDirectory(@"E:\DBENTest\PDFtoImageDemo\PDFtoImageDemo\lib"); MagickReadSettings settings = new MagickReadSettings(); // Settings the density to 300 dpi will create an image with a better quality settings.Density = new Density(300); using (MagickImageCollection images = new MagickImageCollection()) { // Add all the pages of the pdf file to the collection images.Read("E:\\DBENTest\\PDFtoImageDemo\\PDFtoImageDemo\\test.pdf", settings); //Create new image that appends all the pages horizontally using (MagickImage horizontal = images.AppendHorizontally()) { // Save result as a png horizontal.Write("Snakeware.horizontal.png"); } //Create new image that appends all the pages horizontally using (MagickImage vertical = images.AppendVertically()) { // Save result as a png vertical.Write("Snakeware.vertical.jpeg"); } using (MagickImage vertical = images.AppendVertically()) { // Save result as a png vertical.Write("Snakeware.vertical.gif"); } } } }
2,有一个特别注意的地方,如果想pdf转图片必须安装一个应用,才可以装换,应用名字是gs920w64.exe下载链接是http://www.ghostscript.com/download/gsdnld.html
3,下载下来安装上就可以了,运行刚才的程序就可以装换图片了
4,可是有个问题就是我们的服务试运行在服务器上的,所以不可能安装一个程序到服务器,所有就有个程序开头的那句代码 MagickNET.SetGhostscriptDirectory(@"E:\DBENTest\PDFtoImageDemo\PDFtoImageDemo\lib");这个话的意思就是指定应用程序的目录,什么目录呢?就是我们安装的程序gs920w64.exe的目录,当我们安装完这个程序之后,在bin目录下找到这两个文件gsdll32.dll/gsdl64.dll 或者 gswin32c.exe/gswin64c.exe 把这个两个文件拷贝到任意你想放的,而且能访问到地方,别jb访问不到。
5,这样我们就可以在服务器上用我们的这个功能了。
6,这个pdf转image目前所有网站都找不到这样的demo和例子,所以写下来,供大家使用解决时间。。。如果有不明白可以加我qq835961075,因为那个应用程序不好下载,我用FQ下载的,所以可以管我要。