如何把online OCR的结果转换成word文档

要把string保存到word文档里,最简单的方法就是用Open XML SDK。这里分享下如何结合Dynamic .NET TWAIN OCR SDK和Open XML SDK,把online OCR的结果转换成word文档。

12094422_3O6L.png

参考原文:

Online OCR – Convert Images to Word, Text and PDF

下载

如何集成Open XML SDK到Online OCR应用

这里使用的OpenXML SDK 2.5是从NuGet获得的,官方下载可以访问Open XML SDK 2.5 for Microsoft Office

添加Open XML引用:

12094425_2mt5.png

打开,DoOCR.aspx.cs找到代码:

byte
[] content = OCRMode.OCR(inputBuffer, strLanguage, Convert.ToInt32(strFormat));


结果是byte array,把它转换成string:

System.Text.Encoding.ASCII.GetString(content)


创建函数SaveToWord,传入文件路径和OCR结果:

private void SaveToWord(string filepath, string ocrResult)
        {
            using (WordprocessingDocument doc = WordprocessingDocument.Create(filepath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document))
            {
                MainDocumentPart mainPart = doc.AddMainDocumentPart();
                mainPart.Document = new Document();
                Body body = mainPart.Document.AppendChild(new Body());
                Paragraph para = body.AppendChild(new Paragraph());
                Run run = para.AppendChild(new Run());
 
                string returnValue = FilterInvalidXmlChars(ocrResult);
                run.AppendChild(new Text(returnValue));
            }
        }

这样OCR结果就可以保存到word文档里了。要注意的是,结果里可能包含了无效的XML字符,所以还需要对结果做过滤处理:

public static string FilterInvalidXmlChars(string text)
        {
            // answer from http://stackoverflow.com/questions/397250/unicode-regex-invalid-xml-characters/961504#961504
            string re = @"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]";
            return Regex.Replace(text, re, "");
        }

看下视频demo:
 


更多信息可以参考Word processing (Open XML SDK)

源码

https://github.com/DynamsoftRD/online-ocr

git clone https://github.com/DynamsoftRD/online-ocr.git


转载于:https://my.oschina.net/yushulx/blog/377894

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值