WEB开发网
开发学院软件开发C++ 超星格式-BMP 阅读

超星格式-BMP

 2008-03-08 12:40:13 来源:WEB开发网   
核心提示:最近,我偶然发现了一个超星 -> BMP的方法,超星格式-BMP, 首先,请下载最新的“超星3.4Beta 7”, var i:integer; j:boolean; begin ClipBoard.Clear; MyPdg.LoadPage(FPdgName,0,0,10); Mypdg.Refresh; My

  最近,我偶然发现了一个超星 -> BMP的方法。
  首先,请下载最新的“超星3.4Beta 7”,安装后,运行Delphi5,选择Component->Import ActiveX Control,然后,你会发现“Import ActiveX”中有一个选择为“Pdg2 Type Library(Version 1.0)”.....,剩下的事不用我说了吧。
  我的方法:
PRocedure TMainForm.PdgToBmp(FPdgName, FBmpName: string);//FPdgname--超星格式文件名 FBmpName--要保存的BMP文件名。
var i:integer;
  j:boolean;
begin
  ClipBoard.Clear;
  MyPdg.LoadPage(FPdgName,0,0,10);
  Mypdg.Refresh;
  MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight); //这一操作需要一段时间
  j:=false;
  while j=false do
  begin
    MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight);
    for i:=0 to clipboard.FormatCount -1 do //检测ClipBoard中是否有位图,因为我在调试中发现有时执行MyPdg.CopyToClipBoard (0,0,MyPdg.PageWidth ,MyPdg.PageHeight);会出错,只有检测到有位图存在时,再进行复制.
    if Clipboard.Formats[i]=2 then j:=true;
  end;
  Bmp.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
  bmp.PixelFormat:=pf1bit ; 
  bmp.SaveToFile(FBmpName);
end;
 
另外,假如对整个目录下的文件连续进行转换,请在相邻两次转换过程中插入
  Sleep(1000);//给超星一点时间,否则她会有意见,不干活啦!!!

且 Mypdg.Visible必须设置True;

我发现转为BMP后用清华OCR识别的效果并不好,假如各位有什么高见,拿出来大伙公分享吧!!! 

Tags:超星 格式 BMP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接