郁闷,账号密码找不回来了,新申请了一个账号上来发帖。
纠结了2周的问题,还是没有解决。
Delphi用Olecontainer实现word分页显示,由于olecontainer本身的问题,只能显示word的第一页,所以我做了一个分页显示的方案,大致思路就是把word的每一页内容都分别复制出来然后粘贴在一个olecontainer中,然后把所有的这些olecontainer都放在一个scrollbox上。但现在有一个问题:由于是通过对word内容进行复制粘贴的,如果整个word文档有项目编号的话,那么除了第一页的项目编号复制出来是正确的,后面的所有页中的项目编号复制出来再粘贴在olecontainer里时,编号都会发生变化,这是由于word的自动编号导致的。
求高手帮忙解决。或者有更好的分页显示word的方案,也望不吝赐教。
纠结了2周的问题,还是没有解决。
Delphi用Olecontainer实现word分页显示,由于olecontainer本身的问题,只能显示word的第一页,所以我做了一个分页显示的方案,大致思路就是把word的每一页内容都分别复制出来然后粘贴在一个olecontainer中,然后把所有的这些olecontainer都放在一个scrollbox上。但现在有一个问题:由于是通过对word内容进行复制粘贴的,如果整个word文档有项目编号的话,那么除了第一页的项目编号复制出来是正确的,后面的所有页中的项目编号复制出来再粘贴在olecontainer里时,编号都会发生变化,这是由于word的自动编号导致的。
求高手帮忙解决。或者有更好的分页显示word的方案,也望不吝赐教。
1.用word打开test.doc 打印 选择 "Microsoft Office Document Image Writer",生成一个"test.mdi"文件;
2.Delphi里菜单 Component -> Import ActiveX 加入 "Microsoft Office Document Imaging....." ActiveX控件;(成功后ActiveX选单下面增加了MiDocView组件)
3.代码如下:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MODI_TLB, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
mv1: TMiDocView;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if mv1.PageNum = mv1.NumPages -1 then
exit;
mv1.PageNum := mv1.PageNum + 1;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
mv1 := TMiDocView.Create(nil);
mv1.DocViewMode := miDOCVIEWMODE_SINGLEPAGEVIEW;
mv1.FitMode := miPRINT_PAGE;
mv1.FileName := 'd:\test.mdi';
mv1.Parent := Panel1;
mv1.Align := alClient;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
mv1.Destroy;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if mv1.PageNum = 0 then
exit;
mv1.PageNum := mv1.PageNum - 1;
end;end.
这一步怎么实现?我在word里没有找到这个嘛?