之前学习到了如何使用iText生成PDF文件,之后发现iText还提供了读取PDF的API,便尝试了写了个Demo.仅供参考。

package com.java.inputPDF;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.FilteredTextRenderListener;
import com.itextpdf.text.pdf.parser.LocationTextExtractionStrategy;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import com.itextpdf.text.pdf.parser.RegionTextRenderFilter;
import com.itextpdf.text.pdf.parser.RenderFilter;
import com.itextpdf.text.pdf.parser.TextExtractionStrategy;/*** 创建日期:2017-10-13下午2:28:35* 修改日期:* 作者:ttan* 描述:iText读取PDF*/
public class ReadPdfByiText {public static void main(String[] args) throws IOException {String outputPath = "E:\\ReadPdf\\PdfContent_1.txt";PrintWriter writer = new PrintWriter(new FileOutputStream(outputPath));String fileName = "E:\\ReadPdf\\111.pdf";readPdf(writer, fileName);//直接读全PDF面//readPdf_filter(fileName);//读取PDF面的某个区域}public static void readPdf(PrintWriter writer,String fileName){String pageContent = "";try {PdfReader reader = new PdfReader(fileName);int pageNum = reader.getNumberOfPages();for(int i=1;i<=pageNum;i++){pageContent += PdfTextExtractor.getTextFromPage(reader, i);//读取第i页的文档内容}writer.write(pageContent);} catch (Exception e) {e.printStackTrace();}finally{writer.close();}}public static void readPdf_filter(PrintWriter writer,String fileName){String pageContent = "";try {Rectangle rect = new Rectangle(90, 0, 450, 40);RenderFilter filter = new RegionTextRenderFilter(rect);PdfReader reader = new PdfReader(fileName);int pageNum = reader.getNumberOfPages();TextExtractionStrategy strategy;for (int i = 1; i <= pageNum; i++) {strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);pageContent +=PdfTextExtractor.getTextFromPage(reader, i, strategy);}/*String[] split = pageContent.split(" ");for(String ss : split){System.out.println(ss.substring(ss.lastIndexOf(":")+1, ss.length()));           }*/writer.write(pageContent);} catch (Exception e) {e.printStackTrace();}finally{writer.close();}}
}

使用iText读取PDF文件相关推荐

  1. pdfboxiText生成PDF文件格式及读取PDF文件内容的小示例--完美支持中文版

    最近项目中有个需求需要将数据库中的数据导出到PDF文件中,所以在网上查找了相关的开源框架--pdfbox&itext 于是乎写了一个简单的工具类,如有需要的可以直接拿去用,切勿跟俺客气~. 本 ...

  2. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

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

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

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

  4. Itext导出pdf文件

    使用iText生成pdf文件并导出 前言: 项目中需要给用户提供一个可以导出pdf文件的功能,用来展示本月的数据.像excel.word这种直接就可以使用POI进行导出了,但是导出pdf格式的文件 我 ...

  5. python解析并读取PDF文件:函数总结

    目录 1.PyPDF2 2. pdfminer & pdfminer3k 3. pdfplumber 4. Camelot 虽然PDF文件对文本布局非常好,容易打印并阅读,但软件要将它们解析为 ...

  6. itex将html转成pdf加水印,itext操作PDF文件添加水印

    功能描述:添加图片和文字水印 /** * * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] * @param srcFile 待加水印文件 * @param destFile 加水 ...

  7. python怎么读取pdf文件_Python解析并读取PDF文件内容的方法

    本文实例讲述了Python解析并读取PDF文件内容的方法.分享给大家供大家参考,具体如下: 一.问题描述 利用python,去读取pdf文本内容. 二.效果 三.运行环境 python2.7 四.需要 ...

  8. java 取pdf 文本域_java – 使用iText从pdf文件中提取文本列

    我需要使用iText从pdf文件中提取文本. 问题是:一些pdf文件包含2列,当我提取文本时,我得到一个文本文件,其中列被合并为结果(即同一行中两列的文本) 这是代码: public class pd ...

  9. 使用ITEXT操作PDF文件

    2019独角兽企业重金招聘Python工程师标准>>> 使用ITEXT操作PDF文件 pom.xml <dependency><groupId>com.ite ...

  10. python 保存pdf文件_PyPDF2读取PDF文件内容保存到本地TXT实例

    我就废话不多说了,大家还是直接看代码吧! from PyPDF2.pdf import PdfFileReader import pandas as pd def Pdf_to_txt(pdf): f ...

最新文章

  1. 【每日一算法】两数相加
  2. 每日一淘完成1.3亿美元融资,元生资本、DCM领投,SIG联合投资
  3. Protobuf在Unity中的通讯使用
  4. 引入css外部样式表的注意事项
  5. window 常用软件
  6. PHP程序员测试题及答案
  7. 数模(6):Leslie矩阵人口模型
  8. 饿了么ui自定义表头内容
  9. java shiro教程_10 分钟快速上手 Shiro 新手教程
  10. 大数据与云计算的关系?
  11. 男人的梦想:世界名车标志
  12. c#实现麻将胡牌判定-----对子法
  13. 前端非框架类知识点汇总
  14. 基于Python的微信好友男女比例,区域排名,签名情感分析
  15. 清理Ubuntu虚拟机磁盘空间
  16. ios view改变重叠层次关系
  17. 图文解读Fcoin发布的FT公链
  18. POJ1251丛林之路题解
  19. 2017中国智能商用车国际峰会
  20. 计算机视觉导论试题,计算机视觉导论

热门文章

  1. HTML5基础知识2
  2. kuka机器人码垛编程网盘_KUKA机器人码垛程序怎么写(案例)
  3. 神经网络的数学原理(二):神经元与神经网络
  4. 欧美大脑计划存在的问题和忽视的一个重要元素,互联网大脑计划系列三
  5. 【源码汇总】基于RGB-D相机的三维重建总览 包括静态与动态三维重建
  6. 流媒体服务器开源方案调研
  7. win7的计算机最大连接数,win7系统解除共享文件夹最大连接数限制的操作方法
  8. java获取当前年第一天_java中如何获取系统时间的当前年份以及年份的第一天和最后一天...
  9. TMS320F28035 中断中使用DINT,无法关闭中断的原因
  10. 2022年备考[嵌入式系统设计师]你准备好了吗?