来自: oocool, 时间: 2004-11-25 10:24:21, ID: 2907612
我把代码贴这里吧
uses .... MODI_TLB <== 加入這個 Type Library
procedure TForm1.Button1Click(Sender: TObject);
Var doc :IDocument;
Img :IImage;
Layout :ILayout;
begin
doc := IDispatch(CreateOleObject('MODI.Document')) as IDocument;
doc.create('c:\page0002.jpg');
doc.OCR(miLANG_CHINESE_TRADITIONAL,true,true);
Img := IDispatch(doc.Images[0]) as IImage;
Layout := IDispatch(Img.Layout) as ILayout;
Memo1.Lines.Add(Layout.Text);
doc.Close(false);
Img := nil;
Layout := nil;
end;
还有一段
procedure TForm1.Button2Click(Sender: TObject);
var
doc, layout: Variant;
i: integer;
str: string;
begin
if OpenDialog1.FileName = '' then
begin
ShowMessage('please select a tiff image file first!');
exit;
end;
doc := CreateOleObject('MODI.Document');
doc.Create(OpenDialog1.FileName);
// miLANG_CHINESE_TRADITIONAL = 1028
// miLANG_CHINESE_SIMPLIFIED = 2052
// miLANG_SYSDEFAULT = 2048
Screen.Cursor := crHourGlass;
doc.OCR(1028);
Screen.Cursor := crDefault;
for i:=0 to doc.Images.Count - 1 do
begin
str := str + doc.Images.Item[i].Layout.Text;
end;
Memo1.Lines.Text := str;
ShowMessage('Finished!');
doc.Close;
doc := UnAssigned;
end;
我是先import library 出 MODI_TLB 这个 .pas
然后add到project里
不知道哪里出了错
还是提示我 “没有注册类别”
来自: wr960204, 时间: 2004-11-25 14:32:22, ID: 2908204
我有空帮你看看
来自: oocool, 时间: 2004-11-25 14:38:04, ID: 2908216
十分感谢
来自: wr960204, 时间: 2004-11-25 15:33:09, ID: 2908345
我一时也没有研究透.但有一方式可以解决这个问题.
导入类型库后安装组件到ActiveX面板.
在窗体上放上一个DocumentView组件.
然后同样的代码就不会有问题了.真是奇怪.只要去掉那个组件就有问题
var
doc : MODI_TLB.IDocument;
Img : IImage;
Layout : ILayout;
begin
if not OpenDialog1.Execute then
Exit;
doc := CoDocument.Create;
doc.create(OpenDialog1.FileName);
doc.OCR(miLANG_CHINESE_SIMPLIFIED {简体中文}, true, true);
Img := IDispatch(doc.Images[0]) as IImage;
Layout := IDispatch(Img.Layout) as ILayout;
Memo1.Text := Layout.Text;
doc.Close(false);
Img := nil;
Layout := nil;
end;
来自: oocool, 时间: 2004-11-25 16:16:17, ID: 2908427
DocumentView组件 是安装之后出现的吗?
不知为何我总安装不上这个类库
何以详细的说一下步骤吗?
class name我也改了
还是说已经注册
来自: wr960204, 时间: 2004-11-25 16:46:51, ID: 2908494
导入类型库的时候选择Install就行了
来自: oocool, 时间: 2004-11-26 8:20:41, ID: 2909074
原来是我delphi的问题
我换了台机器就实现了
那个控件DocumentView
不放就出错
visible都不行
最后我把大小设成0*0了
********************************************************************
ID:3590264
var
IMiDoc: IDocument;
procedure TForm1.btn1Click(Sender: TObject);
begin
IMiDoc := CoDocument.Create;
IMiDoc.Create('c:\1.tif');
IMiDoc.PrintOut(0, -1, 1, EmptyWideStr, EmptyWideStr, True, 1);
IMiDoc.Close(False);
end;