解析如下图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解析的更多相关文章

  1. PDF解析记录——Pdfbox

    此文仅作记录[嫌放电脑里碍事-_-],内容为以前收集的一小段代码.   下面为pdf获取文本的简要代码片段: private string GetPDFText(string filename) { ...

  2. pdf解析与结构化提取

    #PDF解析与结构化提取##PDF解析对于PDF文档,我们选择用PDFMiner对其进行解析,得到文本.###PDFMinerPDFMiner使用了一种称作lazy parsing的策略,只在需要的时 ...

  3. PDF解析帮助类

    public class ComPDFHepler { /// <summary> /// 正则获取字符串中两个字符串间的内容 /// </summary> /// <p ...

  4. PDF解析。。。

    解析出PDF中的文字.用项目名称作Key取对应的值.. 正则匹配 .....:..\n

  5. AFL++初探-手把手Fuzz一个PDF解析器

    CVE-2019-13288 目前漏洞在正式版本已经被修复,本文章仅供学习Fuzz过程,不存在漏洞利用的内容 这是一个pdf查看器的漏洞,可能通过精心制作的文件导致无限递归,由于程序中每个被调用的函数 ...

  6. Python使用PDFMiner解析PDF

    近期在做爬虫时有时会遇到网站只提供pdf的情况,这样就不能使用scrapy直接抓取页面内容了,只能通过解析PDF的方式处理,目前的解决方案大致只有pyPDF和PDFMiner.因为据说PDFMiner ...

  7. php抓取图片进行内容提取解析,文字性pdf进行内容文字提取解析

    2018年7月7日18:52:17 php是用纯算法,自己是提取图片内容不是不行,可以但是优化起来很麻烦还得设计学习库,去矫正数据的正确率 对于大多数项目来说,如果不是做ocr服务,就不必要做需求工具 ...

  8. 深入学习Python解析并解密PDF文件内容的方法

    前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...

  9. 深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

随机推荐

  1. html5中的beginPath与stroke

    名词解释: 定义和用法 beginPath() 方法在一个画布中开始子路径的一个新的集合. 语法 beginPath() 描述 beginPath() 丢弃任何当前定义的路径并且开始一条新的路径.它把 ...

  2. iOS界面开发

    [转载] iOS界面开发 发布于:2014-07-29 11:49阅读数:13399 iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple 希望通过 Hand-off ...

  3. Android 实例子源代码文件下载地址380个合集

      android 城市列表特效 - 触摸查找源码 .rar: http://www.t00y.com/file/64337887 android 日记系统源码(数据库的基本操作) .rar: htt ...

  4. :first-child 类似的 :first 匹配第一个元素,但是:first-child选择器可以匹配多个:即为每个父级元素匹配第一个子元素。这相当于:nth-child(1)

    描述: 在每个 ul 中查找第一个 li HTML 代码: <ul> <li>John</li> <li>Karl</li> <li& ...

  5. osip状态机分析

    转载于:http://blog.csdn.net/lbc2100/article/details/48342889 OSIP的核心是系统状态机,在不同情况下,系统处于不同的状态,在某一状态下当系统发生 ...

  6. jquery中没有innerHTML

    本人正在学习使用jQuery. 发现如果我在div或者其他非表单的标签中赋值,原本用普通的js就直接document.getElementById("id").innerHtml( ...

  7. Asp.net 之Application

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. LabVIEW串口通信

    Instrument I/O 利用LabVIEW内置的驱动程序库和具有工业标准的设备驱动软件,可对 GPIB(通用接口总线).Ethernet(以太网)接口.RS-232(标准串行接口总线)/RS-4 ...

  9. Java精确计算小数

    Java在计算浮点数的时候,由于二进制无法精确表示0.1的值(就好比十进制无法精确表示1/3一样),所以一般会对小数格式化处理. 但是如果涉及到金钱的项目,一点点误差都不能有,必须使用精确运算的时候, ...

  10. shell zsh

    之前用fish安装homebrew成功了 但是忘记怎么安装的了 以后要纪录下来了 设置zsh为默认的 shell https://github.com/robbyrussell/oh-my-zsh/w ...