delphi怎样向word中指定位置插入图片?
var
  LinkToFile, SaveWithDocument, Range: olevariant;begin
  WordDocument1.Range.InsertAfter('我的图片'+#13);
  WordDocument1.Range.InsertAfter('同学' +#13);//例如全面加了很多类似的文字,我想接着加图片    LinkToFile := False;
    SaveWithDocument := True;
    WordApplication1.Selection.InlineShapes.AddPicture('e:\11.jpg',LinkToFile,SaveWithDocument,EmptyParam);
end;但发现图片居然加上最上面,有没有办法接着加在鼠标当前的位置啊?具体的代码怎样

解决方案 »

  1.   

    unit   Unit1; interface uses 
        Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs, 
        Buttons,   Word97,   OleServer; type 
        TForm1   =   class(TForm) 
            App:   TWordApplication; 
            Doc:   TWordDocument; 
            SpeedButton1:   TSpeedButton; 
            SpeedButton2:   TSpeedButton; 
            SpeedButton3:   TSpeedButton; 
            SpeedButton4:   TSpeedButton; 
            SpeedButton5:   TSpeedButton; 
            odDoc:   TOpenDialog; 
            SpeedButton6:   TSpeedButton; 
            procedure   SpeedButton1Click(Sender:   TObject); 
            procedure   SpeedButton2Click(Sender:   TObject); 
            procedure   SpeedButton3Click(Sender:   TObject); 
            procedure   SpeedButton4Click(Sender:   TObject); 
            procedure   SpeedButton5Click(Sender:   TObject); 
            procedure   SpeedButton6Click(Sender:   TObject); 
        private 
            {   Private   declarations   } 
        public 
            {   Public   declarations   } 
        end; var 
        Form1:   TForm1; implementation {$R   *.DFM} procedure   TForm1.SpeedButton1Click(Sender:   TObject); 
    begin 
        APP.Connect; 
        app.Visible   :=   true; 
    end; procedure   TForm1.SpeedButton2Click(Sender:   TObject); 
    var     Index,sFile,bFlag:OleVariant; 
    begin 
        if   odDoc.Execute   then 
        begin 
            sFile:=odDoc.FileName; 
            bFlag   :=   False; 
            App.Documents.Open(sFile,bFlag,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam); 
            index   :=1; 
            Doc.ConnectTo(App.Documents.Item(index)); 
        end 
        else 
        begin 
        ///Documents.Add   DocumentType:=wdNewBlankDocument 
    //         ShowVisualBasicEditor   =   True 
        /// 
            app.Documents.Add(EmptyParam,EmptyParam); 
        end; 
    end; procedure   TForm1.SpeedButton3Click(Sender:   TObject); 
    begin 
        Doc.PrintPreview; 
    end; procedure   TForm1.SpeedButton4Click(Sender:   TObject); 
    begin 
        //   Selection.TypeText   Text:= "uiyuiyuiyuiyuyuyui " 
        ///这是我录的插入字符的宏 
        //   思想:宏转换在 vb转换要容易些 
            app.Selection.TypeText( 'dfjalfda;fdsajfla '); end; procedure   TForm1.SpeedButton5Click(Sender:   TObject); 
    var 
        LinkToFile,   SaveWithDocument:OleVariant; 
    begin 
        //   Selection.InlineShapes.AddPicture   FileName:= "F:\新建文件夹   (2)\BLOW4.JPG ",   _ 
        //             LinkToFile:=False,   SaveWithDocument:=True 
        odDoc.FileName   := 'F:\新建文件夹   (2)\BLOW4.JPG '; 
        if   odDoc.Execute   then 
        begin 
            LinkToFile:=False;   SaveWithDocument:=True; 
            app.Selection.InlineShapes.AddPicture(odDoc.FileName,LinkToFile,SaveWithDocument,EmptyParam);     end; 
        {插入表格也类是   用range   可以控制插入的位置} 
    end; procedure   TForm1.SpeedButton6Click(Sender:   TObject); 
    var 
          append,FileName,   Range,   Item,   Copies,   Pages,   PageType   ,   ManualDuplexPrint 
          ,   Collate,   Background,   PrintToFile   ,   PrintZoomColumn,   from,to_   , 
            PrintZoomRow,   PrintZoomPaperWidth,   PrintZoomPaperHeight:OleVariant; begin 
    { ' 
    '   Macro3   Macro 
    '   宏在   2001-7-24   由   yj   录制 

            Application.PrintOut   FileName:= " ",   Range:=wdPrintRangeOfPages,   Item:=   _ 
                    wdPrintDocumentContent,   Copies:=1,   Pages:= "11 ",   PageType:=wdPrintAllPages   _ 
                    ,   ManualDuplexPrint:=False,   Collate:=True,   Background:=True,   PrintToFile   _ 
                    :=False,   PrintZoomColumn:=0,   PrintZoomRow:=0,   PrintZoomPaperWidth:=0,   _ 
                    PrintZoomPaperHeight:=0 

        FileName:= ' ';   Range:= 'wdPrintRangeOfPages ';   Item:= 'wdPrintDocumentContent '; 
          Copies:=1;   Pages:=2;   PageType:= 'wdPrintAllPages '; 
                    ManualDuplexPrint:=False;   Collate:=True;   Background:=True;                 PrintToFile   :=False;   PrintZoomColumn:=0;   PrintZoomRow:=0; 
                      PrintZoomPaperWidth:=0; 
                    PrintZoomPaperHeight:=0   ; 
                    append:=false; 
                    from:=2; 
                    to_:=2; 
        app.PrintOut(Background,Append   ,   Range,   filename,   from,   to_,   Item,   Copies,   Pages,   PageType,   PrintToFile,   Collate,   FileName,   EmptyParam,   ManualDuplexPrint)//,   PrintZoomColumn,   PrintZoomRow,   PrintZoomPaperWidth,   PrintZoomPaperHeight)     {(Background,EmptyParam,EmptyParam,filename,EmptyParam, 
            EmptyParam,EmptyParam,EmptyParam,pages,EmptyParam,EmptyParam);} 
    end; end.
      

  2.   

    你要先了解WORD文件的格式,再打开WORD文件
    将指针移动到位置再插入图片