package com.purang.pdf;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
/**
* @param args
*/
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 输入文本文件名称
String textFile = null;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
int startPage = 1;
// 结束提取页数
int endPage = Integer.MAX_VALUE;
// 文件输入流,生成文本文件
Writer output = null;
// 内存中存储的PDF Document
PDDocument document = null;
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);
// 调用PDFTextStripper的writeText提取并输出文本
stripper.writeText(document, output);
} finally {
if (output != null) {
// 关闭输出流
output.close();
}
if (document != null) {
// 关闭PDF Document
document.close();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盘下的SpringGuide.pdf的内容
pdfReader.readFdf("E:\\SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
//先导入PDFBox-0.7.2.jar
}
分享到:
相关推荐
W_PDF PDF读写控件是专门针对PDF文档处理开发的一款工具,适用于软件开发者,特别是那些使用Delphi编程语言的开发者。通过这个控件,开发者可以方便地在应用程序中实现PDF文档的创建、读取和修改功能。 PDF读写控件...
文本文件的读写很简单:用插入器 () 向文件输出;用析取器 (>>) 从文件输入。 例如: file2 ; // 向文件写入字符串"I Love You" int I; file1 >> I; // 从文件输入一个整数值 这种方式还有一种简单的格式化能力...
MFC(txt文件读写)是Microsoft Foundation Classes(MFC)中的一种文本文件读写机制,用于在MFC应用程序中读取和写入文本文件。本文将详细介绍MFC-txt文件读写的基本概念、文件变量的定义、文件的打开方式、写入信息...
在PDF读写方面,CLibPDF库支持的基本操作可能包括: 1. **打开PDF文件**:通过指定文件路径,库可以加载PDF文档,提供一个句柄供后续操作使用。 2. **页面操作**:可以读取PDF页面的内容,包括文本、图像和图形元素...
使用这些库时,首先需要将其引入到项目中,然后通过调用库提供的API来执行读写操作。例如,使用iText创建PDF时,可以创建一个`Document`对象,然后添加`Paragraph`和`Image`等元素。 6. 源码分析: 压缩包中的...
一、用JAVA完成了PDF读写(IText的应用) 加密PDF文件,引用到的JAR包是 bcprov-jdk15on-147 生成PDF文件,引用到的JAR包是itext5.5.1 项目文件为PDFText.java 主要实现功能: 1、创建一个PDF文件:HelloWorld.pdf,...
PDF(Portable Document Format)是一种广泛使用的文件格式,用于呈现文档,包括文本格式和图像,保持原始格式和布局的不变性。在IT行业中,对PDF文件进行读取和写入的操作是常见的需求,例如生成报告、填写表单或者...
这个"pdf读写jar包"可能就是指的PDFBox的特定版本,如这里的"pdfBox1.8.14"。这个版本的PDFBox包含了处理PDF文档所需的各种类和方法,可以帮助开发者实现对PDF的高级操作。 在使用PDFBox进行PDF读取时,有几个关键...
首先,Spire.Pdf是一款强大的.NET PDF组件,它提供了丰富的API,使得开发者可以轻松地在C#环境中进行PDF文件的读写、编辑、转换等操作。要使用这个库,你需要先将其添加到你的项目中。这通常可以通过NuGet包管理器...
总结来说,Java文件读写涉及到`FileInputStream`、`FileOutputStream`、`InputStreamReader`、`BufferedReader`、`FileWriter`等核心类。正确选择和组合这些类,可以高效地进行文件操作,同时要注意线程安全和性能...
而PDF(Portable Document Format)是一种通用的文件格式,用于无损地交换包含文本、图像和图形的文档。当需要在C++程序中创建和读取PDF文档时,开发者通常会利用特定的库来处理这些任务,以便生成具有个性化设计的...
个字符到字符数组中,charread 为一次读入的字符数while ((charread = reader.read(tempchars)) != -1) { System.out.print(tempchars, 0, charread); } reader.close(); } catch (Exception e1) { e1....
这个源码支持将多个文本文件合并到一个PDF中,这涉及到文件操作和流处理技术。在编程中,可能使用了文件指针定位到PDF末尾,然后将新的文本内容写入,以实现追加功能。 4. **拖放操作**: 拖放功能是现代应用中的...
在C#中,读写PDF文档是一项常见的任务,特别是在开发应用程序时需要生成报告或文档时。这个场景下,我们可以利用第三方库来实现这一功能。在提供的描述中提到了需要引用一个DLL,这通常指的是第三方库的动态链接库...
除了基本的读写功能,iText还支持更高级的操作,如修改现有PDF文档的文本、添加图像、创建表格、创建PDF表单以及设置安全性和权限。例如,如果你想要在已有PDF文件的特定位置插入文本,你可以使用PdfStamper类: ``...
本文将详细介绍如何使用iText这个强大的工具来实现对PDF文件文本信息的读写操作。首先,我们需要了解iText的基本概念和功能。iText提供了一系列API,可以用来创建PDF文档、填充已有的PDF表单、添加文本、图像、链接...
c++读写文本文件及ini文件例子整理.pdf
9. **权限管理**:由于涉及到文件读写,记得在AndroidManifest.xml中添加相应的权限声明,例如`<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />`。 10. **错误处理与调试**:由于...