php使用office modi吗,不安装office的情况下第三方软件(开发语言)调用MODI(Microsoft Office Document Imaging)...

要搞定的事情

1.搞定MODI组件所需文件

2.完成与MODI的COM组件相关的注册表项安装(添加)

3.完成与Office相关的注册表项安装(添加)

1.     MODI文件

层次

文件名

说明

接口层

MODI

MDIVWCTL.DLL

Microsoft Office Document Imaging Viewer Control

MSPCORE.DLL

Microsoft® Office Document Imaging Object Library

MSPGIMME.DLL

Microsoft® Gimme library

OFFICE12\MSO.DLL

2007 Microsoft Office component

数据层

英语

LATIN1.SHP

西欧11国(含英文)通用特征库

CharSetTable.chr

字符编码转换表,文本文件

ENGLISH.LNG

英文语言文件

简体中文

ENGDIC.DAT

清华文通的英文字典文件,貌似它也支持中、英文

ENGIDX.DAT

清华文通的英文索引

JFONT.DAT

Simplified Chinese code Conversion

LOOKUP.DAT

OCRHC.DAT

OCRVC.DAT

TWGB32.DLL

SCCODE.UNI

SCPRINT.DAT

SCPRINT2.DAT

2与MODI的COM组件相关的注册表项安装(添加)

COM相关就是与MODI的COM组件相关的注册表项,这个直接用regsvr32导入即可:启动命令行,进入MODI安装文件夹,执行下面的命令:

regsvr32 MDIVWCTL.DLL

regsvr32 MSPCORE.DLL即可完成MODI COM组件的注册。

3与Office相关的注册表项安装(添加)

[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]

"2052"=hex(7):76,00,55,00,70,00,41,00,56,00,53,00,2e,00,7d,00,58,00,25,00,21,\

00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\

5f,00,32,00,30,00,35,00,32,00,3c,00,00,00,00,00

[HKEY_CLASSES_ROOT\Installer\Features\00002109F10040800000000000F01FEC]

"OCR_2052"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\00002109F10040800000000000F01FEC\Features]

"OCR_2052"="%mEMae,7q9*DXdU@EPi="

[HKEY_CLASSES_ROOT\Installer\Products\00002109710000000000000000F01FEC]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\3F745FF6A76FF2F4797DB74FC7B3FD8B]

"00002109710000000000000000F01FEC"="C:\\Program Files\\Common Files\\Microsoft Shared\\MODI\\12.0\\XPAGE3C.DLL"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4080B9FA1A0BBF34FB7813E87159FC64]

"00002109F10040800000000000F01FEC"="C:\\Program Files\\Common Files\\Microsoft Shared\\MODI\\12.0\\SCCODE.UNI"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\48AD0082D02B3D24C9A56FA50728CCAB]

"00002109710000000000000000F01FEC"="C:\\Program Files\\Common Files\\Microsoft Shared\\MODI\\12.0\\MSPCORE.DLL"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\D94C8360B8BB1DC41B1950E0F8237563]

"00002109710000000000000000F01FEC"="C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE12\\MSO.DLL"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\00002109710000000000000000F01FEC\InstallProperties]

"WindowsInstaller"=dword:00000001

下面是自己用C#调用MODI及使用人工神经网络算法AspriseOCR写的OCR程序

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Runtime.InteropServices;

namespace ToText

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

#region DllImport

[DllImport("OCR", CallingConvention = CallingConvention.Cdecl)]

public static extern IntPtr OCR(string file, int type);

[DllImport("AspriseOCR.dll", EntryPoint ="OCRpart", CallingConvention = CallingConvention.Cdecl)]

static extern IntPtr OCRpart(string file,int type, int startX,int startY, int width,int height);

[DllImport("AspriseOCR.dll", EntryPoint ="OCRBarCodes", CallingConvention = CallingConvention.Cdecl)]

static extern IntPtr OCRBarCodes(string file,int type);

[DllImport("AspriseOCR.dll", EntryPoint ="OCRpartBarCodes", CallingConvention = CallingConvention.Cdecl)]

static extern IntPtr OCRpartBarCodes(string file,int type, int startX,int startY, int width,int height);

#endregion

//点击“转换”事件

private void button1_Click(object sender, EventArgs e)

{

//txt_result.Text = "";

StringBuilder sb =new StringBuilder();

string img_Path = txt_imgpath.Text.Trim(); //图片地址

if (String.IsNullOrEmpty(img_Path))

{

MessageBox.Show("请先输入图片地址!");

return;

}

//office MODI

if (string.Compare(this.cmb_toolstype.SelectedValue.ToString(),"2007") == 0)

{

try

{

MODI.Document doc =new MODI.Document();

doc.Create(img_Path);               //open

MODI.Image image;

MODI.Layout layout;

doc.OCR(GetLanuageType(cmb_languagetype.SelectedValue.ToString()),true, true);  //识别文字类型

for (int i = 0; i < doc.Images.Count; i++)

{

image = (MODI.Image)doc.Images[i];

layout = image.Layout;

sb.Append(layout.Text);

}

}

catch (Exception ex)

{

txt_result.Text = "转换失败!详情:" + ex.Message;

}

txt_result.Text = sb.ToString();

}

//AspriseOCR人工神经网络算法

else if(string.Compare(this.cmb_toolstype.SelectedValue.ToString(),"8") == 0)

{

int startX = 0;

int startY = 0;

int width = -1;

int height = -1;

try

{

Image img =Image.FromFile(img_Path);

width = img.Width;

height = img.Height;

}

catch (Exception ex)

{

MessageBox.Show(ex.StackTrace);

}

txt_result.Text = Marshal.PtrToStringAnsi(OCRpart(img_Path, -1, startX, startY, width, height));

}

}

//“浏览”事件

private void button2_Click_1(object sender, EventArgs e)

{

openFileDialog1.ShowDialog();

txt_imgpath.Text = openFileDialog1.FileName;

}

//窗体加载事件

private void Form2_Load(object sender, EventArgs e)

{

List list =new List();

ListItem item = new ListItem();

List list2 =new List();

ListItem item2 = new ListItem();

//数值对应 以MODI.MiLANGUAGES枚举类为准

list.Add(new ListItem("英语","9"));

list.Add(new ListItem("简体中文","2052"));

cmb_languagetype.DataSource = list;

cmb_languagetype.ValueMember = "_sValue";

cmb_languagetype.DisplayMember = "_sText";

list2.Add(new ListItem("MODI_OCR", "2007"));

list2.Add(new ListItem("Asprise_OCR", "8"));

cmb_toolstype.DataSource = list2;

cmb_toolstype.ValueMember = "_sValue";

cmb_toolstype.DisplayMember = "_sText";

}

private MODI.MiLANGUAGES GetLanuageType(string sValue)   //判断语言类型

{

switch (sValue)

{

case "2052":

return MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED;

case "9":

return MODI.MiLANGUAGES.miLANG_ENGLISH;

default:

return MODI.MiLANGUAGES.miLANG_ENGLISH;

}

}

private void txt_result_TextChanged(object sender,EventArgs e)

{

}

}

}

运行结果

0818b9ca8b590ca3270a3433284dd417.png

解析原图(左上角部分)

0818b9ca8b590ca3270a3433284dd417.png

原图18M无法上传

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于许多人来说,安装Office可以让他们使用模拟OCR功能。然而,有一些人可能不需要通过安装Office使用OCR,这就是为什么可以使用一个名为Modi OCR的光学扫描中文简繁体的modi ocr安装包。Modi OCR是一种独立的OCR系统,允许您将扫描的图像转换为可编辑的文本。这个软件可以将简体中文和繁体中文进行识别,从而减轻了对OCR功能的需求。这个软件是免费的,可以从许多网站上下载,安装起来也非常简单。简单来说,如果您需要使用OCR功能,但又不想安装OfficeModi OCR可以是一个非常好的选择。无论您是使用简体中文还是繁体中文,这个软件都可以为您提供有帮助的功能。 ### 回答2: Microsoft Office Document Imaging(简称MODI)是一款Office套件中自带的OCR软件,用于识别图像中的文字和字符,可以将图像文件转换成可编辑的文本文件。Windows 10没有自带的MODI OCR,但用户可以通过安装MODI OCR安装包来使用该功能,而不需要安装Office软件使用MODI OCR安装包,用户可以将中文简繁体文本转化为可编辑的文本文件,并且还能进行一定的文本识别和编辑,极大地提高了工作效率和便捷性。安装包包含了多种语言,其中包括简体中文和繁体中文,用户可以根据自己的需要选择不同的语言进行安装使用MODI OCR安装包的安装非常简单,用户只需要下载并双击运行安装程序即可完成安装安装过程中,用户可以根据自己的需要选择安装语言安装路径。在安装完成之后,用户可以通过Windows搜索功能快速找到MODI OCR软件,并进行使用。 总之,MODI OCR安装包是一款非常实用的软件,不仅能够实现光学扫描文本识别,还可以转化为可编辑的文本文件,大大提高了工作效率和便捷性。用户可以根据自己的需要进行使用,而且不需要安装Office软件也可以使用,十分方便。 ### 回答3: Modi OCR是一种光学字符识别技术,可以将纸质文档转换为可编辑格式的电子文档。虽然Windows 10内置了一些OCR功能,但是它们可能不支持中文简繁体的识别,因此我们可以使用Modi OCR来解决这个问题。 Modi OCR是以前Microsoft Office的一部分,现在可以通过独立安装包在Windows 10中安装。虽然我们可以在Windows 10上安装Microsoft Office,但这并不是必须的。通过安装Modi OCR,我们可以使用其OCR功能来将纸质文档扫描成电子文档,可以节省时间和努力。 安装过程是相对简单的:首先,下载并运行Modi OCR安装程序,然后按照指示完成安装安装完成后,我们可以使用Windows Fax and Scan应用程序直接扫描文档。在开始扫描之前,我们需要设置扫描的分辨率和文件格式,以确保获得高质量的图像和文本识别结果。一旦扫描完成,OCR过程会自动开始,我们可以查看识别的文本结果并进行编辑。 总之,Modi OCR是一种非常实用和方便的光学字符识别工具,它可以在Windows 10上轻松使用,无需安装Office套件。如果您需要扫描和识别中文简繁体文本,Modi OCR将是一个非常好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值