读取pdf内容分页和全部

//读取pdf 全部内容public static String topdffile(String pdffile){    StringBuffer result = new StringBuffer();    String str=null;    FileInputStream is = null;    PDDocument document = null;    try {        is = new FileInputStream(pdffile);        PDFParser parser = new PDFParser(is);        parser.parse();        document = parser.getPDDocument();        PDFTextStripper stripper = new PDFTextStripper();        str=stripper.getText(document);       // System.out.println("------"+str+"--------------");    } catch (FileNotFoundException e) {

e.printStackTrace();    } catch (IOException e) {

e.printStackTrace();    } finally {        if (is != null) {            try {                is.close();            } catch (IOException e) {

e.printStackTrace();            }        }        if (document != null) {            try {                document.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    return str;-----------------------------------------------------------//分页查询保存到map里
// 是否排序        boolean sort = false;        // pdf文件名        String pdfFile = file;        // 输入文本文件名称        String textFile = null;        // 编码方式        String encoding = "UTF-8";        // 开始提取页数        int startPage = 1;        // 结束提取页数        int endPage =5;        // 文件输入流,生成文本文件        Writer output = null;        // 内存中存储的PDF Document        PDDocument document = null;        Map mpdf=new HashMap();        try {            try {                // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件                URL url = new URL(pdfFile);                //注意参数已不是以前版本中的URL.而是File。                document = PDDocument.load(pdfFile);                // 获取PDF的文件名                String fileName = url.getFile();                // 以原来PDF的名称来命名新产生的txt文件                if (fileName.length() > 4) {                    File outputFile = new File(fileName.substring(0, fileName                            .length() - 4)                            + ".txt");                    textFile = outputFile.getName();                }            } catch (MalformedURLException e) {                // 如果作为URL装载得到异常则从文件系统装载                //注意参数已不是以前版本中的URL.而是File。                document = PDDocument.load(pdfFile);                if (pdfFile.length() > 4) {                    textFile = pdfFile.substring(0, pdfFile.length() - 4)                            + ".txt";                }            }            // 文件输入流,写入文件倒textFile            output = new OutputStreamWriter(new FileOutputStream(textFile),                    encoding);            // PDFTextStripper来提取文本            PDFTextStripper stripper = null;            stripper = new PDFTextStripper();            // 设置是否排序            stripper.setSortByPosition(sort);//            // 设置起始页//            stripper.setStartPage(startPage);//            // 设置结束页//            stripper.setEndPage(endPage);

for(int i=startPage;i<=document.getNumberOfPages();i++){                stripper = new PDFTextStripper();                stripper.setSortByPosition(sort);                // 设置起始页                stripper.setStartPage(i);                // 设置结束页                stripper.setEndPage(i);                String textT=stripper.getText(document);               // System.out.println("第" + i+"页");               // System.out.println( "开始--------------------------------------------------------------------");               // System.out.println( textT);              //  System.out.println( "--------------------------------------------------------------------结束");                mpdf.put(i,textT);            }             // System.out.println(mpdf.size());            // 调用PDFTextStripper的writeText提取并输出文本//            stripper.writeText(document, output);//            System.out.println(stripper.getEndPage());//            System.out.println( "*****="+stripper.getText(document));//            System.out.println("*****22=" + stripper.getTextLineMatrix());//            System.out.println("*****33=" + stripper.getTextMatrix());//            System.out.println("*****44=" + stripper.getArticleStart());//            System.out.println("*****55=" + stripper.getArticleEnd());

} finally {            if (output != null) {                // 关闭输出流                output.close();            }            if (document != null) {                // 关闭PDF Document                document.close();            }        }        return mpdf; 返回map
时间: 2024-10-18 05:50:26

读取pdf内容分页和全部的相关文章

Python读取PDF内容

晚上翻看<Python网络数据采集>这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则适用的是已经把pdf内容合到html里的情况. 现在这个python版本的代码,是读取pdf文件内容(互联网上的或是本地的),觉得这个很有参考价值,就发个贴记录下来.这段代码主要是用了一个第三方库PDFMiner3K把PDF读成字符串,然后用StringIO转换成文件对象. from urllib.request import urlopen from p

lucent检索技术之创建索引:使用POI读取txt/word/excel/ppt/pdf内容

在使用lucent检索文档时,必须先为各文档创建索引.索引的创建即读出文档信息(如文档名称.上传时间.文档内容等),然后再经过分词建索引写入到索引文件里.这里主要是总结下读取各类文档内容这一步. 一.之前做过一个小工具也涉及到读取word和excel内容,采用的是com组件的方式来读取.即导入COM库,引入命名空间(using Microsoft.Office.Interop.Word;using Microsoft.Office.Interop.Excel;),然后读代码如下: 读取word

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

这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应用.主要参考了一些已有的博客内容,代码. 主要思路是首先利用一个做项目的形式,描述所做的问题,运行环境,和需要安装的库,然后写代码,此代码是在python2.7中运行,然后写出在python3.6中运行的代码,并详细解释python2.7和python3.6中python库的一些不同之处,最后详细的

java 读取pdf、word、Excel文件

用到的jar: itextpdf-5.5.8.jar   (PDF) poi.jar public class FileUtils { /** * 判断文件是否存在 * * @Title: isExcite * @param @param filePath * @param @return * @return boolean 返回类型 * @throws */ public static boolean isExcite(String filePath) { File file = new Fi

【Win10 开发】读取PDF文档

关于用来读取PDF文档的内容的API,其实在Win8.1的时候就有,不过没关系,既咱们讨论的是10的UAP,连同8.1的内容也包括进去,所以老周无数次强调:把以前的内容学好了,就可以在不学习任何新知识的前提直接进入10的开发,至于你信不信,反正我信了. 好,P话不扯了,今天刚升级了Build 10061,VS创建UAP并运行是没什么问题的,不过XAML设计器貌似不太听话,比较淘气:还有个别API有问题,虽然异常报的是CLR损坏,但我们知道RT其实是基于COM的形式注册的,实际上是Win32的数据

利用iTextSharp.dll读取PDF到string、制作水印,图片转PDF

文字水印感觉有些问题,可能是字体的原因 图片水印的透明度设置无效 但勉强可以用 iTextSharp.dll版本5.2.1.0 using System; using System.Collections.Generic; using System.Linq; using System.Text; using iTextSharp.text.pdf; using iTextSharp.text; using iTextSharp.text.pdf.parser; using System.IO;

使用iTextSharp读取PDF文档

网上有很多获取pdf页数方法有读流判断type/page的但是经过实际测试文件太大的时候往往不是很准确,既然这样我们就不用费心去自己写了可以用itextsharp. 这里是下载地址:http://sourceforge.net/projects/itextsharp/files/ (1)创建一个Windows控制台应用程序,命名为ReadPdfDemo.(2)添加对iTextSharp的引用.(3)在“Program.cs”文件中添加如下引用.using System;using System.

.net 后台读取pdf的值

在网上找了内容 下载了这个插件 引用在了项目中 然后找到pdf中的位置 进行读取 string pdfPath = Server.MapPath("~/ViewPatPdf.pdf"); PDDocument doc = PDDocument.load(pdfPath); PDFTextStripper stripper = new PDFTextStripper(); string txt = stripper.getText(doc); Response.Write(txt); 上

已知s.txt文件中有一个这样的字符串 请编写程序读取数据内容,把数据排序后写入 ss.txt文件

package cn.idcast5; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; /* * 需求:已知s.txt文件中有一个这样