如何使Delphi OLEContainer显示Acrobat PDF文件内联而不是启动Acrobat Reader实例?

时间:2015-04-10 06:43:15

标签: delphi ole

我的Delphi应用程序有一个通用的查看器,可以使用TOleContainer查看DOC / DOCX,XLS / XLSX和PDF文件。用户将在他们的PC上安装MS-Office和Acrobat Reader。

这是通过简单地使用TOleContainer控件实现的。 TOleContainer放置在具有Align = alClient的TForm中。

问题:OLEContainer正在MS-Office文档(DOC / DOCX / XLS / XLSX)的控件中内联打开文档。这是期望的行为。但是对于PDF文件,它会显示PDF文档的预览 - 仅在控件中没有滚动条的第一页 - 它还会打开一个单独的Acrobat Reader窗口并在其中加载文档。我希望用户体验保持一致,避免让它打开单独的Acrobat Reader窗口来查看PDF文档。

是否有任何'技巧'可以让它按照需要运作?

这是当前的代码:

object OleContainer1: TOleContainer
  Left = 0
  Top = 0
  Width = 533
  Height = 592
  AutoActivate = aaGetFocus
  Align = alClient
  BorderStyle = bsNone
  Caption = 'OleContainer1'
  SizeMode = smAutoSize
  TabOrder = 0
  ExplicitLeft = 1
  ExplicitTop = 1
  ExplicitWidth = 427
  ExplicitHeight = 433
end

procedure TfmDocPrv.PreviewDocument(const ADocumentFile: String);
begin
  Screen.Cursor := crHourGlass;
  OleContainer1.CreateObjectFromFile(ADocumentFile, False);
  Screen.Cursor := crArrow;
end;

提前致谢!

0 个答案:

没有答案