zoukankan      html  css  js  c++  java
  • 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, "年  龄:,
    ");//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; } } }
  • 相关阅读:
    如何定时备份Mysql数据库
    Mysql如何分析慢查询及优化(一)--- EXPLAIN详解
    Mysql如何分析慢查询日志--MysqlDumpSlow详解
    Mysql添加用户及用户权限管理
    Mysql表的横向拆分与纵向拆分及简单案例
    Mysql触发器详解以及简单的案例
    Mysql存储过程详解及案例
    Mysql中如何查看线程
    Nginx命令与配置详解
    SQLSERVER 2008 技术内幕 T-SQL查询 笔记1: SQL 执行顺序
  • 原文地址:https://www.cnblogs.com/come-on-come-on/p/5527379.html
Copyright © 2011-2022 走看看