我用  olecontainer1.CreateObjectFromFile(strFile,true);  把word.excel显示出来后怎么能控件它的打印按钮啊,或者怎么能打印它自己的工具栏我不想要。。
还有olecontainer1能嵌入pdf吗?有什么办法。

解决方案 »

  1.   

    你在Word里录制一个打印预览的宏。把这个宏的代码写到Delphi中 以前我试过的,现在记得不太清楚了 大概就是这样做的
      

  2.   

    1 通过OLE打开word或excel,先用word录入一段打印操作的宏命令,在delphi里调用;
    //word浏览
    OleContainer1.CreateObjectFromFile(FileName,False);
    OleContainer1.DoVerb(ovShow);
    //word只读模式
    OleContainer1.OleObject.application.ActiveDocument.Protect(2);
    {excel下只读模式
    OleContainer1.OleObject.application.ActiveSheet.Protect(True,True,True);
    OleContainer1.OleObject.ActiveSheet.EnableSelection := 1;
    }//在word里查询某字符串操作示例代码,打印亦如此;
      Result := False;
      if KeyWord = '' then Exit;
      Ole.Selection.HomeKey(wdStory);
      Ole.Selection.Find.Text := KeyWord;
      Ole.Selection.Find.Replacement.Text := '';
      Ole.Selection.Find.Forward := True;
      Ole.Selection.Find.Wrap := wdFindContinue;
      Ole.Selection.Find.Format := False;
      Ole.Selection.Find.MatchCase := False;
      Ole.Selection.Find.MatchWholeWord := False;
      Ole.Selection.Find.MatchByte := True;
      Ole.Selection.Find.MatchWildcards := False;
      Ole.Selection.Find.MatchSoundsLike := False;
      Ole.Selection.Find.MatchAllWordForms := False;
      Ole.Selection.Find.Execute;
      Result := Ole.Selection.Text <> '';
    2 安装Adobe reader,安装此activeX插件调用即可;