首页 > 学院 > 开发设计 > 正文

PDF文件表格数据处理

2019-11-08 01:20:53
字体:
来源:转载
供稿:网友

由于要处理PDF文件格式的表格数据,查了好多资料都是写普通PDF文件的操作,最后选定了划定区域获取文本的方式来处理数据

数据格式如下:

code如下:

//pdf模板处理PRivate static void fillTemplete(){   String templetePath = "E://testTable.pdf";   String data = "";   List<User> listUser = new ArrayList<>();   try {      PDDocument document = PDDocument.load(new File(templetePath));      if(document.isEncrypted()){         try{            document.decrypt( "" );         } catch (Exception e){         }      }      PDFTextStripperByArea stripper = new PDFTextStripperByArea();      stripper.setSortByPosition(true);      //划定区域      Rectangle rect= new Rectangle(0, 0, 700, 800);      stripper.addRegion("area", rect);      List<PDPage> allPages = document.getDocumentCatalog().getAllPages();      int i = 0;      for(PDPage page : allPages){         stripper.extractRegions(page);         i++;         //获取区域的text         data = stripper.getTextForRegion("area");         data = data.trim();         String[] datas = data.split("/r/n");         //对文本进行分行处理                  for( i = 0; i<datas.length; ++i){	    String[] strUser = datas[i].split(" ");            User user = new User();            user.setName(strUser[0]);            user.setId(strUser[1]);            user.setGender(strUser[2]);            user.setSchool(strUser[3]);            user.setMajor(strUser[4]);            user.setAaa(strUser[5]);            user.setGg(strUser[6]);            listUser.add(user);         }      }      document.close();      for(User user :listUser){         System.out.println(user.toString());      }   } catch (Exception e){      e.printStackTrace();   }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表