当前位置: 首页 > news >正文

网站 的空间科讯cms 网站地图

网站 的空间,科讯cms 网站地图,浙江建设继续教育网站首页,湖北工程公司建设公司网站我们在做PDF文档解析时有时需要解析PDF文档中的表格、形状等数据。跟解析文本类似的常见的解决方案也是两种。文档解析跟ocr技术处理。下面我们来看看使用文档解析的方案来做PDF文档中的表格、图形解析#xff08;使用pdfium库#xff09;。 表格解析#xff1a; 在pdfium库…我们在做PDF文档解析时有时需要解析PDF文档中的表格、形状等数据。跟解析文本类似的常见的解决方案也是两种。文档解析跟ocr技术处理。下面我们来看看使用文档解析的方案来做PDF文档中的表格、图形解析使用pdfium库。 表格解析 在pdfium库中在解析表格时是将表格的线解析成单独的对象。所以我们在解析时只需要遍历页面中的所有线条拿到线条之后再进行表格结构的重新组装即可。 以下为读取页面中线的相关代码 std::string strPdfPath pdf.pdf; //初始化库 FPDF_InitLibrary(); //加载文档 FPDF_DOCUMENT document FPDF_LoadDocument(strPdfPath.c_str(), nullptr); if (!document) {//load error } //获取页数 int page_count FPDF_GetPageCount(document); //此处我们只演示处理第一页 FPDF_PAGE page FPDF_LoadPage(document, 0); // 加载第一页 (索引 0) if (page) {int objCount FPDFPage_CountObjects(page); //获取当前页的对象数for (int i 0; i objCount; i){FPDF_PAGEOBJECT obj FPDFPage_GetObject(page, i);int nObjType FPDFPageObj_GetType(obj);//对象类型switch (nObjType){case FPDF_PAGEOBJ_UNKNOWN:break;case FPDF_PAGEOBJ_PATH: {int nSegments FPDFPath_CountSegments(obj); //std::vectorCPoint vecPts;for (int j 0; j nSegments; j){FPDF_PATHSEGMENT segment FPDFPath_GetPathSegment(obj, j);int nSegType FPDFPathSegment_GetType(segment);//线段类型switch (nSegType){case FPDF_SEGMENT_UNKNOWN:break;case FPDF_SEGMENT_LINETO:{float x, y;FPDFPathSegment_GetPoint(segment, x, y);CPoint pt(x, y);vecPts.push_back(pt); }break;case FPDF_SEGMENT_BEZIERTO:{// }break;case FPDF_SEGMENT_MOVETO:{float x, y;FPDFPathSegment_GetPoint(segment, x, y); CPoint pt(x, y);vecPts.push_back(pt); }break;default:break; } } } break; default:break; } } } FPDF_ClosePage(page);通过上述代码我们获取Path对象中的数据即可拿到表格的线条需要的注意的时如果只拿表格的线的话需要对线的数量做判断如果对象只有两个点则为表格的线。这里拿到的线是整体的线。 比如上边的表格拿到的线数量为8条线段。 如果需要将线组成一个表格结构那我们需要自己做处理。大致的处理思路是将长线段打断为短线段然后再将短的线段组合成一个个的小多边形根据多边形的上下左右共边关系生成一个表格结构。至于这里为什么要生成一个多边形是为了后续做文本跟表格关联做准备。 根据之前文本解析文章中我们可以看到在获取文本信息时也能拿到文本的位置、大小等信息。所以我们在进行文本表格关联时只需要判断文本位置的那个点是否在表格的多边形内即可如果在多边形内则说明PDF中该文本为表格中该单元格的数据。这样我们就可以生成一个虚拟的表格数据了。对于图片也是这样处理拿到图片的中心点如果该点在多边形内则该图片为该表格中的数据。 形状解析 读取代码跟读取线的代码一样只是在读取形状时线的数量大于2。如果是圆、半圆之类的则其中一些点为贝塞尔曲线。我在测试时即使形状是线在解析时拿到的线的数量也是4个一个闭合的多边形。其他的形状经过测试也是一个闭合的多边形。 比如Word中的这些线条在解析出来后每个对象都是一些线段跟贝塞尔曲线组合成的一个闭合区域。
http://www.hkea.cn/news/14521852/

相关文章:

  • 网站建设算什么行业菜单设计制作模板免费
  • 上海闵行建网站公司网络舆情工作流程的六个步骤
  • 电商网站建设简单代码网页淄博企业网站建设哪家专业
  • 东莞营销型网站外包乐昌门户网站
  • 网站建设的审批部门是wordpress生成接口
  • 深圳制作网站多少费用腾讯邮箱网页登录入口
  • 学院评估+++网站建设整改ssh网站开发的书籍
  • 韩国建设部网站网页设计与制作教程 机械工业出版社
  • 东阳网站建设微信开发如何做自己的加盟网站
  • 建设网站有哪几种方式乐山旅游英文网站建设
  • 昆明会员网站建设怎么做弹幕小视频网站
  • 手机在线做网站小说网站怎么做词
  • 泉州设计网站运营网站团队建设
  • 模板网站修改教程做网站需要的带宽上行还是下行
  • 设计网站的功能有哪些内容wordpress建网站视频
  • 移动应用开发专业月薪网站百度关键词优化
  • 温州网站推广排名wordpress vip付费
  • 南宁著名的网站企业策划书
  • 沈阳网站开发招聘设一个网站链接为安全怎么做
  • 做网站用的是什么语言网站建设规划大纲
  • 通州区网站建设多平台网页制作
  • 宿迁做网站大公司网页设计与网站建设全攻略
  • 那些门户网站的官网做的好越辉网站建设
  • 大庆市萨尔图区建设局网站软文案例大全300字
  • 网站建设与推广工资重庆建设工程信息网查询平台入口官网
  • 刚做的网站怎么知道有没有潜在的面试建设单位在哪个网站
  • 秦皇岛网站制作报价深圳 建设银行国际互联网站
  • 滁州网站开发公司电话.net搭建企业网站
  • 网站建设需要数学营销培训课程视频
  • 威海网站优化推广商务网页设计与制作第二版答案