4

我想在我的 Delphi 程序中查看(仅)图像文件和一些常见文档(PDF、RTF、TEXT 等),我找到了两种方法,

  1. 通过AtViewer,但文件太大。
  2. 通过直接安装在最终用户计算机上的嵌入式 Internet Explorer。

我想知道,有替代品吗?谢谢。

4

4 回答 4

4

Windows(如果我没记错的话,自 XP 起)使用该IExtractImage界面为缩略图视图中的任何文件生成缩略图,如果它有一个为其文件类型列出的对象。

这些对象可以通过代码访问,并且您可以使用它们为任何在 Windows 资源管理器中获得缩略图的文件生成缩略图。Thumbs.db(我什至认为缩略图缓存 ( ) 如果您请求的图像大小可用,则将从缩略图缓存 ( ) 中提供缩略图。)

这里还有更多:http: //yoy.be/item.asp? i1490 或这里:http: //msdn.microsoft.com/en-us/library/bb775073 (v=vs.85).aspx

于 2011-01-04T20:55:45.247 回答
4

有两种方法可以去这里:

  1. 使用 Windows 提供的任何软件
  2. 坚持使用原生 Delphi 组件

我个人喜欢保留我的来源“所有德尔福”。在显示图像方面,Delphi 拥有许多第三方库,可为您提供几乎所有可以想象的图像格式的支持。

图片

ImageEN 是一个很好的软件包(商业),您可能还喜欢免费的 Vapyre Image Library(名字有点……嗯,但它是一个很棒的产品)。为了快速添加对最常见格式的支持,GraphicsEX 是许多开发人员使用的传统 Delphi 扩展。您还拥有 FreeImage,它是 DLL 文件的集合 - 但带有 Delphi 包装类,使它们易于使用。查看 Torry 的 Delphi Pages (google it) 上的图形部分,您会发现强大的支持。

PDF格式

对于 PDF 预览/阅读,我会看看 Gnostice 的产品线。它们提供用于生成和查看 PDF 文件的原生 Delphi 组件 (http://www.gnostice.com/)。或者(对于 PDF)我可能会选择 Adob​​e 的 PDF 阅读器附带的 ActiveX 组件。但是您必须检查这些对象是否已注册并在启动时可供您的应用程序使用。

因此,对于您的“通用查看器”,我会

  1. 创建一个基本的查看器表单(提供按钮、状态栏等)
  2. 添加打开文件的虚拟方法
  3. 从中得出 3 种形式,每种形式都处理不同的媒体类型。所以你得到了 TfrmPDF、TfrmImage 和 TfrmHTML。在每个中,覆盖 open() 方法。这样,您的主应用程序就不必担心每种格式的细节。

HTML

对于查看 HTML,你很幸运,因为 Delphi 有它自己的本地 Web 渲染器。它由 Steve Baldwin 编写,名为 THTMLViewer。它已作为开源发布,您可以在 google 项目中找到它。

于 2011-01-05T09:05:25.163 回答
2

我建议您编写自己的查看器 TForm,查看要查看的文件并使用它执行三(或四或五)件事情之一:

  1. 如果它是 PDF 或 HTML,请使用嵌入式 IE 网络浏览器加载它(来自 www.bsalsa.com 的 TEmbeddedWB 比包含的 VCL IE 包装器 TwebBrowser 更好)。

  2. 如果是图像,请将其加载到具有调整大小/缩放/滚动支持的图像查看器控件中。

  3. 如果是文本文件或 RTF 文件,请将其加载到 RichEdit 中。

  4. 如果它是 OLE 类型,您可以在 OLE 容器视图中查看它。

于 2011-01-04T18:59:57.170 回答
0

嵌入式查看器将显示任何文档 - 但是,如果它需要外部查看器,那么它将在 IE 之外显示 - 每个 TIFF 都显示在图像查看器中(默认情况下)。

于 2011-01-03T20:06:02.667 回答