PDF解析

Posted 花开花落-2014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = 0; i < arrsearch.Length; i++) { var ses = arrsearch[i].Split(new char[] { \',\' }, StringSplitOptions.RemoveEmptyEntries); if (ses.Length == 1)//默认值 为啥*****************************/ { return ses[0]; } //如果有逗号隔开的,就用正则表达式进行搜索 var reg = new Regex(ses[0]); var m = reg.Match(content); if (m.Success) { reg = new Regex(ses[1]); 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 >= 15))//搜索成功之后,用什么标准认为结果是我们要的? { return re.Trim(); } } } } } return null; } } }

 

以上是关于PDF解析的主要内容,如果未能解决你的问题,请参考以下文章

无法解析片段中的 findViewById [重复]

分享《机器学习:实用案例解析》中文版PDF+英文版PDF+源代码

分享《机器学习:实用案例解析》中文版PDF+英文版PDF+源代码

无法解析片段中的 ViewModelProvider 构造?

《TensorFlow技术解析与实战》高清中文PDF+源代码

《TensorFlow技术解析与实战》高清中文PDF+源代码