首页 文章

如何在没有保存的情况下创建Word文档的缩略图?

提问于
浏览
0

我想创建一个COM dll,它将获取任何Word文件并生成文档第一页的图像文件 . 我已经使用Windows SDK的IExtractImage功能完成了这项工作,但这只有在文件中保存了缩略图时才有效 . (由于Word用户必须通过进入“准备”|“属性”对话框的“高级”选项来进一步保存缩略图,因此大多数Word文档都没有可用的预览 . )

(不幸的是,我坚持使用COM,因为我正在将此解决方案与现有的ASP Web应用程序集成,但它与.NET无法很好地交互 . )

我正在考虑的一种方法是使用PDF生成SDK生成文件的PDF,或者理想情况下只是文件第一页的PDF,然后从PDF生成预览图像 . (我无法访问Adobe专有的PDF SDK,但如果能够证明该解决方案能够很好地运行,我会考虑购买许可证 . )

理想情况下,除了Word文档之外,我还希望能够生成许多其他(非图像)文件类型的预览 .

我注意到Google现在提供了多种文件的预览,我想知道他们使用了什么方法 .

欢迎任何想法,线索,建议和/或侮辱 .

谢谢 .

2 回答

  • 0

    来自旧的OLE-Automation属性页面的缩略图是一个非常小的(甚至没有消除锯齿的)黑白图元文件,这些日子看起来并不好看 . 在经典的VB6或VBA中,您可以使用几行代码触发保存缩略图(如果我没记错的话) . 但是,Winword,Excel等通过隐藏加载Gui应用程序而自动化,这并不总是在(Web)服务器上下文中工作 . 考虑在上传/病毒扫描时缩略文档,但不要从加载到Web服务器的DLL内部缩略图 .

    谷歌方法构建最可能是一些开源组件,这些组件在经典ASP下也不起作用 .

  • 1

    ASP?你可以使用2JPEG . 它支持275 formats(包括Word,Excel,Publisher和Powerpoint文件 . )供应商建议将2JPEG作为计划后台任务调用,这样您就不会影响性能 .

    这里有几个examples

    命令行语法 . 您可以从批处理文件或Windows任务计划程序开始:

    2jpeg.exe -src "C:\In\*.*" -dst "C:\Out"
    

    从Visual C应用程序启动命令行:

    ShellExecute(NULL, "open", "2jpeg.exe", "-src \"C:\\In\\*.*\" -dst \"C:\\Out\"", NULL, SW_HIDE)
    

    从Visual Basic:

    Shell ("""2jpeg.exe"" -src ""C:\In\*.*"" -dst ""C:\out""")
    

    Delphi语法:

    ShellExecute(0, 'open', PChar('2jpeg.exe'), PChar('-src "C:\In\*.*" -dst "C:\Out"'), nil, 0);
    

    Windows服务器上的PERL脚本:

    exec '2jpeg.exe -src C:\In\*.* -dst C:\out';
    

    VB脚本代码示例:

    Set objShell = WScript.CreateObject("WScript.Shell")
    objShell.Run """2jpeg.exe"" -src ""C:\In\*.*"" -dst ""C:\Out""", 1, True
    Set objShell = Nothing
    

    JavaScript代码示例:

    var objShell = new ActiveXObject("Shell.Application");
    objShell.ShellExecute("2jpeg.exe", "-src \"C:\\In\\*.*\" -dst \"C:\\Out\"", "", "open", "1");
    

    PHP代码示例:

    <?php
    echo exec('2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Resize size:"800 600" -jpeg quality:50');
    ?>
    

    从C#应用程序启动2JPEG:

    System.Diagnostics.Process.Start("2jpeg.exe", "-src \"C:\\In\\*.*\" -dst \"C:\\Out\"");
    

相关问题