我想创建一个COM dll,它将获取任何Word文件并生成文档第一页的图像文件 . 我已经使用Windows SDK的IExtractImage功能完成了这项工作,但这只有在文件中保存了缩略图时才有效 . (由于Word用户必须通过进入“准备”|“属性”对话框的“高级”选项来进一步保存缩略图,因此大多数Word文档都没有可用的预览 . )
(不幸的是,我坚持使用COM,因为我正在将此解决方案与现有的ASP Web应用程序集成,但它与.NET无法很好地交互 . )
我正在考虑的一种方法是使用PDF生成SDK生成文件的PDF,或者理想情况下只是文件第一页的PDF,然后从PDF生成预览图像 . (我无法访问Adobe专有的PDF SDK,但如果能够证明该解决方案能够很好地运行,我会考虑购买许可证 . )
理想情况下,除了Word文档之外,我还希望能够生成许多其他(非图像)文件类型的预览 .
我注意到Google现在提供了多种文件的预览,我想知道他们使用了什么方法 .
欢迎任何想法,线索,建议和/或侮辱 .
谢谢 .
2 回答
来自旧的OLE-Automation属性页面的缩略图是一个非常小的(甚至没有消除锯齿的)黑白图元文件,这些日子看起来并不好看 . 在经典的VB6或VBA中,您可以使用几行代码触发保存缩略图(如果我没记错的话) . 但是,Winword,Excel等通过隐藏加载Gui应用程序而自动化,这并不总是在(Web)服务器上下文中工作 . 考虑在上传/病毒扫描时缩略文档,但不要从加载到Web服务器的DLL内部缩略图 .
谷歌方法构建最可能是一些开源组件,这些组件在经典ASP下也不起作用 .
ASP?你可以使用2JPEG . 它支持275 formats(包括Word,Excel,Publisher和Powerpoint文件 . )供应商建议将2JPEG作为计划后台任务调用,这样您就不会影响性能 .
这里有几个examples:
命令行语法 . 您可以从批处理文件或Windows任务计划程序开始:
从Visual C应用程序启动命令行:
从Visual Basic:
Delphi语法:
Windows服务器上的PERL脚本:
VB脚本代码示例:
JavaScript代码示例:
PHP代码示例:
从C#应用程序启动2JPEG: