PDF解析
解析如下图PDF文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System.IO;
using System.Text.RegularExpressions; namespace Test
{
class Program
{
//2个空格以上,意味着匹配出现了问题,匹配后面的
private static Regex r = new Regex(@"\s+\S+\s+");
//1个空格,且字数超过15,是有问题的
private static Regex r1 = new Regex(@"^\S+\s+\S+$"); static void Main(string[] args)
{
string file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "模板.pdf");
Document doc = new Document(file);
var absorber = new TextAbsorber();
doc.Pages.Accept(absorber);
string content = absorber.Text;//将PDF文件解析为一串字符串保存到content变量
string age = GetContentStr(content, "年 龄:,\n");//age=44
} //
protected static string GetContentStr(string content, string search)
{ if (string.IsNullOrEmpty(search)) return null; var arrsearch = search.Split(new string[] { "||" }, StringSplitOptions.RemoveEmptyEntries);//TODO:这句代码干嘛用,这个方法的逻辑****************************************************/
{
for (int i = ; i < arrsearch.Length; i++)
{
var ses = arrsearch[i].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (ses.Length == )//默认值 为啥*****************************/
{
return ses[];
} //如果有逗号隔开的,就用正则表达式进行搜索
var reg = new Regex(ses[]); var m = reg.Match(content); if (m.Success)
{
reg = new Regex(ses[]);
var index = m.Index + m.Length;
m = reg.Match(content, index);
if (m.Success)
{
var len = m.Index - index;
var re = content.Substring(index, len).Trim();
if (!string.IsNullOrEmpty(re) && !r.IsMatch(re) && !(r1.IsMatch(re) && re.Length >= ))//搜索成功之后,用什么标准认为结果是我们要的?
{
return re.Trim();
}
}
}
} }
return null;
}
}
}
PDF解析的更多相关文章
- PDF解析记录——Pdfbox
此文仅作记录[嫌放电脑里碍事-_-],内容为以前收集的一小段代码. 下面为pdf获取文本的简要代码片段: private string GetPDFText(string filename) { ...
- pdf解析与结构化提取
#PDF解析与结构化提取##PDF解析对于PDF文档,我们选择用PDFMiner对其进行解析,得到文本.###PDFMinerPDFMiner使用了一种称作lazy parsing的策略,只在需要的时 ...
- PDF解析帮助类
public class ComPDFHepler { /// <summary> /// 正则获取字符串中两个字符串间的内容 /// </summary> /// <p ...
- PDF解析。。。
解析出PDF中的文字.用项目名称作Key取对应的值.. 正则匹配 .....:..\n
- AFL++初探-手把手Fuzz一个PDF解析器
CVE-2019-13288 目前漏洞在正式版本已经被修复,本文章仅供学习Fuzz过程,不存在漏洞利用的内容 这是一个pdf查看器的漏洞,可能通过精心制作的文件导致无限递归,由于程序中每个被调用的函数 ...
- Python使用PDFMiner解析PDF
近期在做爬虫时有时会遇到网站只提供pdf的情况,这样就不能使用scrapy直接抓取页面内容了,只能通过解析PDF的方式处理,目前的解决方案大致只有pyPDF和PDFMiner.因为据说PDFMiner ...
- php抓取图片进行内容提取解析,文字性pdf进行内容文字提取解析
2018年7月7日18:52:17 php是用纯算法,自己是提取图片内容不是不行,可以但是优化起来很麻烦还得设计学习库,去矫正数据的正确率 对于大多数项目来说,如果不是做ocr服务,就不必要做需求工具 ...
- 深入学习Python解析并解密PDF文件内容的方法
前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...
- 深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
随机推荐
- jquery隐藏table表格的某一列
jquery隐藏table表格的某一列: $('table tr').find('td:eq(13)').hide(); 隐藏table的第13列
- 大数的乘法(C++)
题目:POJ 2398 Bull Math Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13410 Accepted: ...
- 解决Eclipse启动Tomcat时报Error loading WebappClassLoader错误
最近新建了一个JSF项目(网上查到用Struts,Spring MVC也会如此),配置好以后用Eclipse启动Tomcat报了如下错误:严重: Error loading WebappClassLo ...
- 最有效地优化 Microsoft SQL Server 的性能
为了最有效地优化 Microsoft SQL Server 的性能,您必须明确当情况不断变化时,性能将在哪些方面得到最大程度的改进,并集中分析这些方面.否则,在这些问题上您可能花费大量的时间和精力 ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- tcp粘包,udp丢包
TCP是面向流的, 流, 要说明就像河水一样, 只要有水, 就会一直流向低处, 不会间断. TCP为了提高传输效率, 发送数据的时候, 并不是直接发送数据到网路, 而是先暂存到系统缓冲, 超过时间或者 ...
- js遍历数组的错误方法
for (var index in myArray) { // don't actually do this console.log(myArray[index]); } 缺点: 数组的索引值inde ...
- [课程设计]Scrum 2.0 多鱼点餐系统开发进度(第二阶段项目构思与任务规划)
[课程设计]Scrum 2.0 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...
- IntelliJ IDEA 14和Maven创建java web项目
安装Maven 下载安装 去maven官网下载最新版. 解压到安装目录. 配置 右键桌面的计算机图标,属性–>高级系统设置–>环境变量,添加M2_HOME的环境变量,然后将该变量加入的PA ...
- (转)Could not create the view: An unexpected exception was thrown. 电脑突然断电,myeclipse非正常关闭,出现错误
问题:电脑突然断电,myeclipse非正常关闭,“Package Explorer”非正常显示,出现错误“Could not create the view: An unexpected excep ...