LIMS系统仪器数据采集-使用xpdf解析pdf内容
不同语言解析PDF内容都有各自的库,比如Java的pdfbox,.net的itextsharp。
c#解析PDF文本,关键代码可参考:
http://www.cnblogs.com/mahongbiao/p/7652788.html
此外也可使用OCR,关键代码可参考:
http://www.cnblogs.com/mahongbiao/p/3760867.html
这些类库解析PDF文本有一个弊端,就是可配置性不强,它们多数是用于PDF文件生成的,对于PDF文本内容的提取仅提供一两个函数供调用。
解析PDF文本,可使用xpdf,该工具为一命令行工具,因此可通过java或.net调用命令行执行。
c#调用示例代码:
Process p = new Process();
p.StartInfo.FileName = @"pdftotext.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine("test.pdf test.txt");
p.StandardInput.AutoFlush = true;
p.WaitForExit();
p.Close();
在使用itextsharp或者pdfbox解析某PDF文件时,文本内容以竖排的形式输出,不易解析信息。
而使用xpdf,则可以指定-layout参数,将其按照页面显示的布局方式输出。
下图为PDF样式:

下图为pdfBox、itextsharp解析出的内容样式:

下图为xpdf设置了layout后的解析样式:

可以看出,使用xpdf解析出的内容较容易识别出有意义的数据项。
例子中的中文没有解析出来,可通过配置PDF中文字体解决,xpdf的另一个强项功能,就是它支持配置pdf字体,有些PDF内容通过itextsharp解析不出来的情况下,使用xpdf在配置了正确字体后可以解析出内容。
LIMS系统仪器数据采集-使用xpdf解析pdf内容的更多相关文章
- C#仪器数据文件解析-PDF文件
不少仪器工作站输出的数据报告文件为PDF格式,PDF格式用于排版打印,但不易于数据解析,因此解析PDF数据需要首先读取到PDF文件中的文本内容,然后根据内容规则解析有意义的数据信息. C#解析PDF文 ...
- Java仪器数据文件解析-PDF文件
一.概述 使用pdfbox可生成Pdf文件,同样可以解析PDF文本内容. pdfbox链接:https://pdfbox.apache.org/ 二.PDF文本内容解析 File file = new ...
- 开源LIMS系统miso LIMS(适用于NGS基因测序)
开源地址 https://github.com/miso-lims/miso-lims github加速可使用:https://kfqbvpat.fast-github.tk/-----https:/ ...
- LabVantage仪器数据采集方案
LabVantage的仪器数据采集组件为LIMS CI,是一个独立的应用程序/服务,实现仪器数据的采集(GC.LC等带有工作站的仪器). 将仪器输出数据转换为LIMS所需数据并传输,使用Talend这 ...
- 代码片段,使用TIKA来解析PDF,WORD和EMAIL
/** * com.jiaoyiping.pdstest.TestTika.java * Copyright (c) 2009 Hewlett-Packard Development Company, ...
- WPF解析PDF为图片
偶遇需要解析PDF文件为单张图,此做, http://git.oschina.net/jiailiuyan/OfficeDecoder using System; using System.Colle ...
- LIMS系统供应商一览表
LIMS系统供应商一览表. 国内自主研发的LIMS供应商的产品质量一般,国外的LIMS产品在本土化方面,北京三维天地的质量最佳. LIMS系统JAVA..Net平台上都有,由于实验室业务数据量等原因, ...
- Apache-Tika解析PDF文档
通常在使用爬虫时,爬取到网上的文章都是各式各样的格式处理起来比较麻烦,这里我们使用Apache-Tika来处理PDF格式的文章,如下: package com.mengyao.tika.app; im ...
- Python解析PDF三法
span{line-height:2em} --> 最近做调研想知道一些NZ当地的旅游信息,于是在NZ留学的友人自高奋勇地帮我去各个加油站拿了一堆旅游小册子,扫描了发给我. 但是他扫描出的高清图 ...
随机推荐
- Performance Testing 前期准备以及场景设计
性能测试的session参加过几个,也查阅了很多相关的资料.年前被分配了测试任务,一直拖到现在,准备开始做的时候,才发现真的是不知道如何做起啊.今天和同事聊了一下,有很大启发.测试小白一枚,只分享一下 ...
- linux 磁盘加密和tpm搭配使用1
一.基本名称,容易混淆 1.dm-crypt是linux的2.6内核开始集成的一种磁盘加密功能.十几年来,连sche调度算法都被改了N次,但dm-crypt一直稳定在内核中,稳定性还是很好的. 2.c ...
- JavaScript String(字符串对象)
String 对字符串的支持 String.charAt( n ) 返回字符串中的第n个字符 n 是下标 String.charCodeAt( ) 返回字符串中的第n个字符的代码 String.con ...
- 策略模式--List排序
需求:根据姓名进行排序,升序或者降序,如果名字一样,就按照id升序排序,用策略模式 步骤一: 定义一个Person对象 public class Person { private Integer id ...
- 解决页面引用百度地图API设置点的logo不显示问题
在写css时需要引用一个百度的api地图,却发现设置点的logo图片不能显示,后查阅百度测试发现是图片路径的问题: 在引用的下载的html页面找到 var icon = new BMap.Icon 将 ...
- CSS3 动画及过渡详解
今天开始我们一起来学习有关于CSS3制作动画的几个属性:变形(transform).过渡(transition)和动画(animation)等CSS3技术. 首先我们先来了解一下变形(transfor ...
- 译-BMC Remedy Action Request System权限控制概述
原文链接:Access control overview 说明: BMC Remedy Action Request System是BMC ITSM产品平台,简称AR 或者Remedy,可实现基于IT ...
- Servlet--Servlet接口
servlet主要数据结构 Servlet 接口:主要定义了servlet的生命周期方法 ServletConfig接口:为servlet提供了使用容器服务的若干重要对象和方法. ServletCon ...
- MyEclipse安装插件
原文地址:http://www.cnblogs.com/pharen/archive/2012/02/08/2343342.html 本文讲解MyEclipse(MyEclipse10)的三种方法,以 ...
- 设置PATH和CLASSPATH
每天玩java的,如果连这门语言背景一点都熟悉的话,说出去真的是挺丢人的一件事情. 首先,java具有最强大的2个特点:功能强大,简单易用.出去android不说,这门语言衍生出太多的开源框架了,这也 ...