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库的详细解释和应 ...
随机推荐
- C# 类的属性
属性是一个方法或者一对方法.客户端看来是一个字段. 定义属性 public int StudyHours{ //啥不写,默认有get;set; 和后备字段studyHours是private的 get ...
- paper 106:图像增强方面的介绍
图像增强是从像素到像素的操作,是以预定的方式改变图像的灰度直方图.有时又称为对比度增强,灰度变换.点运算不可能改变图像内的空间关系,输出像素的灰度值由输入像素的值决定.其作用: 对比度增强:扩展感兴趣 ...
- 关于SQL Server无法查询中文的问题
SQL Server 的版本是2016,随便试了一条 带有 where 子句的查询.如下: select * from Roles where RoleName like '%系统%' 呐尼,怎么一条 ...
- nodejs框架express准备登录
目录: 安装模板 静态资源 添加视图 渲染视图 url重定向 模板引擎 从本节课程开始我们要使用express框架实现一个简单的用户登陆功能,让我们先准备一下相关资源. 在nodejs中使用expre ...
- 机器学习:异常检测算法Seasonal Hybrid ESD及R语言实现
Twritters的异常检测算法(Anomaly Detection)做的比较好,Seasonal Hybrid ESD算法是先用STL把序列分解,考察残差项.假定这一项符合正态分布,然后就可以用Ge ...
- WebService处理大数据量数据
在通过WebService处理大数据量数据时出现如下错误: soap fault: 运行配置文件中指定的扩展时出现异常. ---> 超过了最大请求长度. 解决方法: 因为上传的文件大于系统默认配 ...
- 使用 highchart 绘制柱状图的通用方法与接口
本文给出使用 highchart 绘制柱状图的通用方法与接口, 只要指定相应的数据结构和配置, 就可以直接拿来使用. 一. 数据结构与基本接口 一般绘制图形, 会涉及到较复杂的数据结构, 比如使 ...
- html5 Web Storage(localStorage(),sessionStorage())
Web Storage包括了两种存储方式:sessionStorage和localStorage sessionStorage 是会话级别的存储,这些数据只有在同一个会话中的页面才能访问并且当会话结束 ...
- 基于tp框架实现的递归城市查询
控制器层: 接下来就是模型层: 如果说你的数据量庞大到致使apache或者nginx停止运行,有两点原因: 1.代码耦合性不高,代码有错误: 2.php.ini里面有一个memory_limit的这个 ...
- CSS 高级语法 ---- 继承和选择器的分组
1. 选择器的分组 ————————————————————————— 可以对选择器进行分组,被分组的选择器享用共同的声明. h1,h2,h3,h4,h5,h6 { color: green; ...