首页 > 其他分享 >轻松生成文档:用docwriter将OCR结果转换为Word和OFD

轻松生成文档:用docwriter将OCR结果转换为Word和OFD

时间:2024-08-20 21:58:10浏览次数:14  
标签:docx Word ofd OFD 生成 docwriter 文档

背景

之前在使用PaddleOCR进行文字识别后,面临一个难题:如何将这些识别结果转换为规范的Word(docx)和OFD文档。经过一番搜索,市面上并没有一个开源组件能够很好地解决这个问题。于是,为了满足这一需求,我手搓了一个轻量级的开源库——docwriter,专门用于生成docx和OFD文件。
https://github.com/isee15/docwriter
在这里插入图片描述

docwriter 简介

docwriter 是一个免费且开源的C++库,旨在简化生成Word(docx)和OFD文档的过程。无论你是需要将OCR结果整理成Word文档,还是生成符合中国国家标准的OFD文档,这个库都能够满足你的需求。

关键功能

  • 多格式支持docwriter 能够生成两种主流文档格式——docx 和 ofd。
  • 简单的数据处理:通过使用 std::vector<std::string> 来存储OCR识别结果和OFD格式的数据,docwriter 使数据的处理和传递更加简洁。
  • 灵活的生成方式:只需调用几个简单的函数,你就能将文本数据转换为完整的文档,并保存到指定的路径。

使用示例

下面展示了如何使用docwriter生成docx和ofd文档:

DocWriter docWriter;
std::vector<std::string> ocrRet;

// 添加OCR识别的文本结果到ocrRet
ocrRet.push_back("{\"text\":\"Old MacDonald Had a Farm\\nRock Scissors Paper\\nClean Up\",\"fontSize\":12}");
ocrRet.push_back("{\"text\":\"春江潮水连海平\",\"fontSize\":12}");

// 生成docx文件并保存为 "demo.docx"
docWriter.GenerateDocx(ocrRet, "./demo.docx");

std::vector<std::string> ofdRet;

// 添加OFD格式的内容到ofdRet
ofdRet.push_back("{\"width\":800,\"height\":600,\"doc\":[{\"text\":\"江南春尽离肠断 20220222 星期二 正月廿二\",\"x\":12,\"y\":30,\"w\":400,\"h\":20}]}");

// 生成ofd文件并保存为 "demo.ofd"
docWriter.GenerateOfd(ofdRet, "./demo.ofd");

文件预览

生成的OFD文件可以通过以下链接进行预览:

总结

docwriter 提供了一种简洁、灵活的方式来生成docx和ofd文件,特别适合那些需要将OCR结果直接转换为文档格式的场景。无论你是出于工作需求还是个人项目,都可以试试这个轻量级的开源库,或许会发现它正好能解决你的痛点。

希望这个工具能为你的开发带来便利,也欢迎大家为这个项目贡献代码!

标签:docx,Word,ofd,OFD,生成,docwriter,文档
From: https://blog.csdn.net/problc/article/details/141313808

相关文章

  • 一款专为内网办公环境设计的操作系统,集成了Word、Excel、PPT、PDF编辑器,内网聊天、白
    前言在当今数字化办公时代,企业面临着多样化的办公需求。现有软件往往存在一些痛点,如操作复杂、兼容性差、资源消耗高,以及在内网环境下的通讯和文件共享不便。这些限制不仅影响了工作效率,也制约了企业的数字化转型。因此,一款能够处理这些问题的软件显得尤为迫切。介绍GodoOS......
  • Spring Security系列之PasswordEncoder
    概述任何一个登录系统的密码不能明文存储,万一发生数据库泄漏事故(不管是内部人员导出数据库数据还是被黑客攻击破解数据库实例节点拿到数据库数据等,又或者是其他情况造成的),将产生巨大的损失。因此明文密码在存储到数据库之前需要加密处理。加密算法有很多,大致有如下分类:哈希函......
  • Word格式刷快捷键失效恢复方法
    突然某天写材料的时候发现word格式刷快捷键变成了Ctrl+Alt+C和Ctrl+Alt+V,用着这个别扭,于是探索如何改回Ctrl+Shift+C和Ctrl+Shift+V,下边是步骤记录。打开word选项,文件->设置->选项在Word选项中点击自定义功能区,并点击键盘快捷方式的自定义按钮。在自定义键盘中,选择所有命令,在......
  • Python 实现Word和TXT文本相互转换
    Word文档(.doc或.docx)和纯文本文件(.txt)是两种常用的文件格式。Word文档通常用于复杂的文档处理和排版,而纯文本文件则用于存储和传输纯文本信息。了解如何在这两种格式之间进行转换能提高工作效率,并便于文件管理。本文将详细介绍如何使用Python实现Word和TXT文件格式之间的相互转换......
  • [题解]UVA1127 Word Puzzles
    UVA1127WordPuzzles我们对模式串建立AC自动机,然后就比较板子了,只需要把\(8\)个方向都跑一遍匹配就可以了。时间复杂度是\(O(T\times8nm)\)。注意输入是大写字母。点击查看代码#include<bits/stdc++.h>#defineK1010//模式串个数&矩阵长宽#defineN1000010//节点个......
  • sonarqube添加一条自定义规则,扫描文件中出现的username和password,方法二,使用implement
    特别指出: 所以,sonarqube默认过滤掉了resources下的文件;以下代码可以扫出yml/xml/properties等文件中的敏感字符,当然是放在src/main下的,不是resources;下载源码与使用详情参考:Sonarqube自定义规则,部署SonarSource/sonar-java源码中示例规则:docs/java-custom-rules-exam......
  • Sonarqube,标识代码中的username/password关键字,分别使用Tree.Kind.STRING_LITERAL 、T
    关于Tree.Kind.STRING_LITERAL、Tree.Kind.IDENTIFIER、Tree.Kind.TEXT_BLOCK等各个区别,请参考:Tree.Kind.STRING_LITERAL、Tree.Kind.IDENTIFIER、Tree.Kind.TEXT_BLOCK区别-yxchun-博客园(cnblogs.com) 1、使用 Tree.Kind.STRING_LITERAL packageorg.sonar.samp......
  • 【Python-办公自动化】1秒提取多个word表格汇总至1个excel内
    欢迎来到"花花ShowPython",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。自我介绍:我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,......
  • sonarqube添加一条自定义规则,扫描文件中出现的username和password,方法一
    下载源码与使用详情参考:Sonarqube自定义规则,部署SonarSource/sonar-java源码中示例规则:docs/java-custom-rules-example-yxchun-博客园(cnblogs.com)假设你已经有了sonarqube-java源码,并且已经把sonarqube部署到电脑上1、在check里面创建文件 MyTxtBlockCheck.javap......
  • Elsa V3学习之Hello Word
    前面文章介绍了Elsa的基础节点内容,接下来我们来开始实践一下。启动项目启动源码目录src\bundles中的Elsa.ServerAndStudio.Web的项目。这个项目包含ElsaServer以及前端界面。可以让我们快速学习Elsa项目。控制台HelloWord打开Workflows下的Definitions页面,点击CREATEWORKFL......