需要一个文档来使用onenote Interop从图像中提取文本?

时间:2011-08-27 06:04:20

标签: c# office-interop onenote

我需要做一个简单的程序,需要使用Onenote Interop从图像中提取文本?任何人都可以建议我为我的概念提供适当的文件吗?

1 个答案:

答案 0 :(得分:3)

OneNote的OCR识别的文本存储在OneNote的XML文件结构中的 one:OCRText 元素中。 e.g。

<one:Page ...>
    ...
    <one:Image ...>
        ...
        <one:OCRData lang="en-US">
            <one:OCRText><![CDATA[This is some sampletext]]></one:OCRText>
        </one:OCRData>
    </one:Image>
</one:Page>

您可以使用名为OMSPY的程序(它向您显示OneNote页面背后的XML)来查看此XML - http://blogs.msdn.com/b/johnguin/archive/2011/07/28/onenote-spy-omspy-for-onenote-2010.aspx

要提取文本,您将使用OneNote COM互操作(正如您所指出的)。 e.g。

//Instantialize OneNote
ApplicationClass onApp = new ApplicationClass();

//Get the XMl from the selected page
string xml = "";
onApp.GetPageContent("put the page id here", out xml);

//Put it into an XML document (from System.XML.Linq)
XDocument xDoc = XDocument.Parse(xml);

//OneNote's Namespace - for OneNote 2010
XNamespace one = "http://schemas.microsoft.com/office/onenote/2010/onenote";

//Get all the OCRText from the page
string[] OCRText = xDoc.Descendants(one + "OCRText").Select(x => x.Value).ToArray();

有关详细信息,请参阅MSDN上的“应用程序界面”文档 - http://msdn.microsoft.com/en-us/library/gg649853.aspx