分享

Microsoft Office Document Imaging

 gxalicent 2015-06-28

Microsoft Office Document Imaging

来自: 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;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多