我的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;
提前致谢!