读书人

delphi怎样向word中指定位置插入图片?

发布时间: 2012-04-16 16:20:04 作者: rapoo

delphi怎样向word中指定位置插入图片?
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;

但发现图片居然加上最上面,有没有办法接着加在鼠标当前的位置啊?具体的代码怎样

[解决办法]
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.

读书人网 >.NET

热点推荐