如何在Word中指定格子插入图片(50分)

  • 主题发起人 主题发起人 zkmltyj
  • 开始时间 开始时间
Z

zkmltyj

Unregistered / Unconfirmed
GUEST, unregistred user!
1、 如何在Word的指定格子(用标签指定)插入图片。
Word的格式是这样的
____________________________________________________________
|_姓名______|__<姓名>_____|___照片_______|______<照片>______|
现在要实现的功能是在<照片>位置插入图片


 
先记录宏,然后改一改,通过delphi的自动化对象来对word对象操作
 
定义标签把,把图片插入到指定的标签位置就可以了,我以前做过这个。
 
to delphiboy
我也是用标签指定位置的。可是插不进去。
你能不能发个例子到我的Email:mltyj2001@163.net
谢谢!
 
比如指定<#name>,然后就是替换!你将word里面的查找替换的宏变成pascal
' dcs Macro
' 宏在 2003-07-04 由 dcs 录制
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "<#name>"
.Replacement.Text = "dcs"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
 
to dcsdcs
你能不能给段完整的代码,谢谢
 
把图片拷贝到剪贴板上,再在Word中进行粘贴
 
to dcsdcs
你能不能给段完整的代码并email到hansheng@163.net,谢谢
 
email: lj@tfnet.com.cn
 
抄一个给你:
{向Word中插入图片。}
var
Adata: Thandle
//临时句柄变量。
Apalette: HPALETTE
//临时变量。
MyFormat: Word
//Word类型变量
TempImage: Timage
//Image类型的临时变量。
begin
TempImage := Timage.Create(application);//产生一个Image的实例。
tempimage.parent := nil;
TempImage.Picture.Assign(PasPicture)
//给实例 付值。
try
TempImage.Picture.SaveToClipboardFormat(MyFormat, Adata, Apalette);//把剖面图发送到剪贴板,设定句柄。
ClipBoard.SetAsHandle(MyFormat, Adata);
finally
Mydoc.Paragraphs.Item(ParagraphsNum).Range.Paste;//把剪贴板上的图片贴到word的指定段落。
end;
end;
 
以下是我在我的例子上加的,你看看,也许会有帮助
就是这句了:
worddoc.tables.item(1).cell(1,2).range.InlineShapes.AddPicture('E:/heartsong/0003.gif',False,True);//这就是加放入图片的语句
cell(1,2)表示第一行第2列的地方,根据你的就是cell(1,4)了,呵呵

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure InsertLines(LineNum:Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
wordApp,wordDoc:Variant;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses ComObj;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
StrAdd:String;
i:Integer;
wrdSelection:Variant;
begin
//创建一个word对象
wordApp:=CreateOleObject('Word.Application');
wordApp.Visible:=true;
//创建一个word文档
wordDoc:=wordApp.Documents.Add();
wordDoc.Select;

wrdSelection:=wordApp.selection;

//在文档中插入内容
StrAdd:='插入一张图片';
wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter;
wrdSelection.font.bold:=true;
wrdSelection.font.size:=15;
wrdSelection.font.Underline:=1;
wrdSelection.TypeText(StrAdd);

wrdSelection.font.Underline:=0;
wrdSelection.font.bold:=false;
wrdSelection.font.size:=11;
InsertLines(1);

//在文档中插入一个4行4列的表格,并格式化
wordDoc.Tables.Add(wrdSelection.Range,4,4,2,0);
wordDoc.Tables.Item(1).Borders.Item(1).LineStyle:=7;
wordDoc.Tables.Item(1).Borders.Item(2).LineStyle:=7;
wordDoc.Tables.Item(1).Borders.Item(3).LineStyle:=7;
wordDoc.Tables.Item(1).Borders.Item(4).LineStyle:=7;
for i:=1 to 4 do
begin
wordDoc.Tables.Item(1).Cell(i,1).Range.Bold:=true;
wordDoc.Tables.Item(1).Cell(i,3).Range.Bold:=true;
wordDoc.Tables.Item(1).Rows.Item(i).Range.Paragraphs.Alignment:=wdAlignParagraphCenter;
end;
//在第一个表格中插入内容
wordDoc.Tables.Item(1).Cell(1,1).Range.text:='岗位名称';
worddoc.tables.item(1).cell(1,2).range.InlineShapes.AddPicture('E:/heartsong/0003.gif',False,True);//这就是加放入图片的语句
wordDoc.Tables.Item(1).Cell(2,1).Range.InsertAfter('岗位级别');
wordDoc.Tables.Item(1).Cell(3,1).Range.InsertAfter('隶属部门');
wordDoc.Tables.Item(1).Cell(4,1).Range.InsertAfter('直接上级');
wordDoc.Tables.Item(1).Cell(1,3).Range.InsertAfter('岗位编号');
wordDoc.Tables.Item(1).Cell(2,3).Range.InsertAfter('现任职者');
wordDoc.Tables.Item(1).Cell(3,3).Range.InsertAfter('分支机构');
wordDoc.Tables.Item(1).Cell(4,3).Range.InsertAfter('直接下级');

//保存文档

......
end;

end.
 
后退
顶部