博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ghostscript.Net Pdf 转 Image
阅读量:6219 次
发布时间:2019-06-21

本文共 1778 字,大约阅读时间需要 5 分钟。

需求:

  项目中需要实现PPT转Image的功能,之前项目中用的是使用Office COM组件实现的功能,通过.NET与Office COM组件的互操作(Interop)来操作Office文档

但是在生产环境中经常发生错误 "检索 COM 类工厂中 CLSID 为 {91493441-5A91-11CF-8700-00AA0060263B} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。 (异常来自 HRESULT:0x8000401A)。",很是郁闷,在网上找了很多资料也没能完美的解决,然后就换了一种解决方案将PPT 转换成PDF 然后在将PDF 转换成Image。

  最后是使用 这个开源组件,来重写这个功能模块。

  第一步:

    下载   32bit安装到本地 

      

  第二步:

    有两种使用方案:

      1、使用本地安装的【服务器上需要安装上述程序】

      2、找到dll拷贝到项目中,在项目中应用【不许安装,只需拷贝dll到bin下】

                  

示例代码C#:

1       static void Main(string[] args) 2         { 3             int desired_x_dpi = 96; 4             int desired_y_dpi = 96; 5             string inputPdfPath = ""; 6             string outputPath = ""; 7  8             //本地安装版本代码 9             //var _lastInstalledVersion =10             //      GhostscriptVersionInfo.GetLastInstalledVersion(11             //              GhostscriptLicense.GPL | GhostscriptLicense.AFPL,12             //              GhostscriptLicense.GPL);13 14             //拷贝到项目版本15             var _lastInstalledVersion = new GhostscriptVersionInfo($"{System.Environment.CurrentDirectory}\\gsdll32.dll");16 17             var _rasterizer = new GhostscriptRasterizer();18 19             _rasterizer.Open(inputPdfPath, _lastInstalledVersion, false);20 21             for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)22             {23                 string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".Jpeg");24                 Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);25                 img.Save(pageFilePath, ImageFormat.Jpeg);26 27                 Console.WriteLine(pageFilePath);28             }29         }

 

参考资料:

  

转载于:https://www.cnblogs.com/wodemingtian/p/6490099.html

你可能感兴趣的文章
MJExtension解析http协议
查看>>
在CentOS6.6上以replSet方式部署MongoDB集群
查看>>
Linux系统下查看服务器有无光纤卡
查看>>
JAVA的三大基本特性分析
查看>>
我的友情链接
查看>>
大型网站系统架构分析
查看>>
Timer和TimeTask简介
查看>>
Struts2之【控制标签】
查看>>
Symmetrix的远程复制技术SRDF的实现及解决方案
查看>>
微信第三方细节
查看>>
Hyperledger Fabric Node.js如何使用基于通道的事件服务
查看>>
c编程应注意到的细节问题
查看>>
linux文件类型及权限
查看>>
深入浅出Vue 使用中的小技巧
查看>>
Metasploit 5.0释出!轻松对多主机渗透测试
查看>>
缓存伪共享问题以及解决方案缓存行填充
查看>>
linux的简单命令
查看>>
SpringMVC常见面试题总结【概念】
查看>>
zookeeper使用和原理探究(一)
查看>>
OSChina 周五乱弹 —— 为什么程序媛那么少?
查看>>