设为首页收藏本站优领域

优领域

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
优领域 优领域 IT领域 网络技术 其它 查看内容

上传解析PDF技术难点分析

2014-5-20 23:30| 发布者: dzly| 查看: 537| 评论: 0|原作者: 肖守柏

摘要: 为使批量上传并解析PDF技术具备较高的扩展性和易用性,文章主张使用Adapt和Strategy等设计模式降低第三 方组件、特征字符等变化点对源程序本身的影响,甚至使用Factory设计模式和Reflect技术将依赖关系转移至配置文件, 使得只需修改配置文件就可应对未来变化。此外,还将异步环境分隔成异步上传和同步数据库操作两段,通过Request 传入值和Session传出值实现异步与同步的通信,从而提高性能。

  目前大部分传统型的网站后台的录入工作大体主要分成三步:(1 )下载文稿。编辑员首先登录邮箱下载并打开论文的PDF 文件稿;(2)拷贝录入。编辑员将其中的论文标题、作者、地址、邮箱、摘要、关键字一一拷贝出来手工录入进数据库;(3)上传文稿。将PDF文件稿上传至系统,供作者检索后下载。
  采用上传解析PDF 方案后,后台录入工作就可免去“拷贝录入”的步骤,而该步骤既是编辑员工作量最大的部分,亦是容易出错的部分。该方案的应用效果为:编辑员批量上传PDF文档,系统自动从PDF 文档中解析并提取论文标题、作者、地址、邮箱、摘要、关键字等信息入库,有效降低后台录入的工作量和错误率。
  在明确将编辑部的投稿步骤由“两步走”合并为“一步走”这一目标后,将相应功能按由难至易划分为先实现论文批量上传解析、再实现论文多条件检索、最后实现论文单一录入上传修改删除。
  1 技术关键
  为实现上述目标,必须明确指出相关技术关键,从而进一步拟定解决方案。
  (1)经过权衡,已选出适合的PDF解析算法,并拟定用Adapt设计模式封装算法,降低算法耦合程度,适应未来变化。
  三种算法中,Aspose.OCR 功能全面,既能从PDF 中提取文字亦能提取图表,但性能稍低,故排除。ItextSharp 只能提取文字,但文字间分隔不明显,故排除。PDFBox-0.7.3 虽然只能提取文字,但文字间分隔明显,且性能较高,故选择该算法。权衡的理由是在现有需求中还不需要提取图表,为了性能,选择PDFBox-0.7.3 算法。
  为使程序与算法本身解耦,拟采用Adapt设计模式封装算法,如图1 所示。


  图1 Adapt 设计模式


  这样,在未来遇到特殊情况时便可轻松切换为其他自定义的解析算法。
  (2)已确定使用字符串的Split、IndexOf方法截取字符串,并拟定结合策略设计模式、工厂设计模式和反射技术提高智能识别特征字符的程度和应变程度。先将标题、作者、地址、邮箱、摘要和关键字前面的特征字符抽象成变化点,再对这些变化点实施默认设置和特定实现,如图2 所示。


  图2 模板设计模式


  值得注意的是,此处使用工厂模式和反射技术将变化点从程序内部转移至配置文件,使得只需修改配置文件中的特征字符便能适应变化,而不必修改内部源代码。
  (3)已确定使用FileUpload 组件实现异步上传,并确定排除研究异步数据库操作的思路。拟采用特殊方式将原本融合在一起的异步操作分隔成两段。前半段是适合上传的异步操作,后半段是适合数据库录入的同步操作。
  (4)已确定使用ASP.NET 自带的Html 上传组件,拟在页面中将该组件设为隐藏模式,并使用单独的输入框和按钮替代该上传组件,模拟点击按钮时程序自动点击被隐藏的上传组件,从而既保留上传功能,又能够充分自定义样式。
  2 技术指标
  (1)编辑人员能够一次性批量上传1GB左右的PDF文件,由计算机将这些PDF文件中的标题、作者、地址、邮箱、摘要和关键字等信息自动入库供日后检索。
  (2)在需求变化要求从PDF文件中提取图片和表格时,能够在切换算法时符合程序设计中“只增加不修改”的原子性原则。
  (3)能够智能识别标题、作者、地址、邮箱、摘要和关键字前面的特征字符,即使发生细微变化,也不必重新编写代码,只需调整配置文件中的配置值即可应对新的变化。
  3 结语
  综上所示,在提取算法方面,通过权衡,已确定使用PDFBox-0.7.3 算法。在智能识别特征字符方面,已确定使用字符串的Split、IndexOf 方法截取字符串,并充分使用Adapt和Strategy等设计模式降低第三方组件、特征字符等变化点对源程序本身的影响,甚至使用Factory设计模式和Reflect技术将依赖关系转移至配置文件,使得只需修改配置文件就可应对未来变化。在上传方面,已确定使用FileUpload 组件实现异步上传,将异步环境分隔成异步上传和同步数据库操作两段后,通过Request 传入值和Session 传出值实现异步与同步的通信。
  参考文献:
  [1] 李贵林,李建中,杨艳.用Plug-in 实现对PDF 文件的信息提取[J].计算机应用,2003(2)
  [2] 孔晖,杨利君.PDF在档案管理中的应用[J].湖南地质,2001(1)
  [3] 杨道良,常明,任晓霞. PDF及其在电子出版领域的应用[J].计算机应用,1999(1)
  
  

网站统计|优领域|优领域 ( 粤ICP备12011853号-1 )  

GMT+8, 2019-6-25 18:42 , Processed in 0.042746 second(s), 12 queries .

Copyright © 2008-2014 优领域

回顶部