/**
* ItextpdfUtil.java
* Create on 2015-1-5
* import iText-5.0.2.jar
*/
package charlie.utils.pdf;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import com.itextpdf.text.pdf.parser.SimpleTextExtractionStrategy;
import com.itextpdf.text.pdf.parser.TextExtractionStrategy;
/**
* @author CharlieChen
* @DateTime 2015-1-5
上午11:43:26
* @version 1.0
*/
public
class ItextpdfUtil {
/**
* @param args
*/
public
static void main(String[] args) {
String pdfPath = "D:/temp/成交单-PDF格式.pdf";
String txtfilePath = "D:/temp/成交单-PDF格式-itext.txt";
//readPdfToTxt(pdfPath,txtfilePath); //调用读取方法
System.out.println(readPdfToTxt(pdfPath));
System.out.println("Finished !");
}
/**
* 读取PDF文件内容到txt文件
*
* @param writer
* @param pdfPath
*/
private
static void readPdfToTxt(String pdfPath,String txtfilePath) {
// 读取pdf所使用的输出流
PrintWriter writer = null;
PdfReader reader = null;
try {
writer = new PrintWriter(new FileOutputStream(txtfilePath));
reader = new PdfReader(pdfPath);
int num = reader.getNumberOfPages();//
获得页数
System.out.println("Total Page: " + num);
String content = "";
// 存放读取出的文档内容
for (int i = 1; i <= num; i++) {
// 读取第i页的文档内容
content += PdfTextExtractor.getTextFromPage(reader, i);
}
String[] arr = content.split("/n");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
/*String[] childArr =
arr[i].split(" ");
for(int j=0;j<childArr.length;j++){
System.out.println(childArr[j]);
}*/
}
//System.out.println(content);
writer.write(content);//
写入文件内容
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取pdf内容
* @param pdfPath
*/
private
static String readPdfToTxt(String pdfPath) {
PdfReader reader = null;
StringBuffer buff = new StringBuffer();
try {
reader = new PdfReader(pdfPath);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
int num = reader.getNumberOfPages();//
获得页数
TextExtractionStrategy strategy;
for (int i = 1; i <= num; i++) {
strategy = parser.processContent(i,
new SimpleTextExtractionStrategy());
buff.append(strategy.getResultantText());
}
} catch (IOException e) {
e.printStackTrace();
}
return buff.toString();
}
}
|
相关推荐
pdf文档的内容都是坐标定位的,文档内容主要包含文本、图片、线条;需要用到pdfbox和pdf2dom两个依赖包
本文将深入探讨如何使用Java读取PDF文件,查找特定文字的位置,并在此基础上添加悬浮图片,以实现签字或盖章的功能。首先,我们需要理解PDF文档的结构以及如何在Java中操作PDF。 PDF(Portable Document Format)是...
Java识别PDF图片中的文字是一项常见的任务,特别是在文档处理和数据提取领域。Tess4J是一个强大的工具,它基于Tesseract OCR(光学字符识别)引擎,能够帮助开发者在Java应用程序中实现这一功能。以下是对这个主题的...
使用iText的`PdfReader`类,我们可以打开PDF文件,获取其元数据,如作者、创建日期等,同时还能遍历PDF的页面,读取其中的文字、图像和表单数据。以下是一个基本的示例代码,展示如何使用iText的`PdfReader`读取PDF...
本主题聚焦于利用C#处理PDF文档,包括生成PDF、读取PDF文本内容以及获取PDF内的图片。以下是对这些知识点的详细阐述: ### 1. C#生成PDF 生成PDF文件通常需要借助第三方库,因为.NET Framework的标准库并不直接...
这里包含了一个FontBox-0.1.0.jar和pdfbox-0.7.3.jar两个jar包,还有一个PdfReader.java文件,很简单,建立一个...把main方法里面的pdf文件路径改下,最后右击执行java类就OK了! 目前无法批量执行!需要进一步优化!
在.NET开发环境中,生成PDF、读取PDF文本内容以及获取PDF内的图片是常见的需求,尤其在文档处理和报告生成的应用中。本文将详细介绍如何利用C#进行这些操作,并提供相关库和技术的概述。 首先,生成PDF文件在.NET中...
这个过程涉及到PDF的读取、内容遍历以及文本匹配,因此在实际应用中,你可能需要对代码进行优化,例如处理复杂的布局、调整高亮样式等。同时,也要注意性能问题,特别是对于大型PDF文档,搜索和处理可能会比较耗时。...
Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换。 我们可以使用PDFBox开发可以创建,转换和操作PDF文档的Java程序。PDFBox的主要功能: Extract Text – 使用PDFBox,您可以从PDF文件中提取Unicode文本。 ...
### Java读取PDF文件中的数据 #### 知识点概览 本文将详细介绍如何使用Java语言来读取PDF文件中的文本内容。此方法简洁高效,适用于处理大量的PDF文档。主要涉及的技术栈包括Java编程基础、PDFBox库的使用以及文件I...
在IT行业中,定时任务是常见的自动化操作,而本项目的核心在于定时读取PDF文件并将其内容批量插入到数据库。这个任务涉及到多个技术点,包括线程管理、PDF处理、数据库操作以及工具类的设计。以下是对这些知识点的...
在这个场景中,"JAVA读取PDF中的文件内容需要的jar"指的是这些库的Java Archive (JAR) 文件,它们包含了处理PDF文件所需的类和方法。 Apache PDFBox是Apache软件基金会的一个开源项目,提供了丰富的API来读取、写入...
- 例如,你可以通过读取数据库或其他数据源获取信息,然后在指定位置填充到PDF上。 3. **生成并插入二维码**: - 使用第三方库如ZXing(Zebra Crossing)生成二维码图像,ZXing提供了多种语言的绑定,包括Java。 ...
Java 读取 PDF 中的文本和图片的方法 本文将介绍通过 Java 程序来读取 PDF 文档中的文本和图片的方法。分别调用方法 extractText() 和 extractImages() 来读取,需要的朋友可以参考下。 读取 PDF 文本 在读取 PDF...
总结起来,通过Java和iText库,我们可以方便地实现PDF文字水印的功能,保护文档的版权和防止非法复制。在处理包含亚洲字符的PDF时,需要引入如iTextAsianCmaps.jar这样的特殊字符集支持文件。这个过程需要对PDF结构...
java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF文本,并实现绝对定位。 iText简介 iText是一个开源的Java类库,用于...
这个“java写的转pdf代码”是专为此目的设计的,它支持中文字符的正确换行以及表格内容的布局,同时允许开发者自定义CSS样式,以满足多样化的格式需求。 首先,我们要理解的是PDF(Portable Document Format)是一...
### Java读取Word、Excel及PDF文档的知识点详解 #### 一、概述 在实际开发过程中,经常需要处理各种格式的文档,如Word、Excel、PDF等。这些文档的读取通常涉及到不同的技术和库。本篇文章将详细介绍如何使用Java...
自己写的 spire.pdf 简单...读取pdf将pdf转化为文字,最后由txt文件保存; 5.分割pdf ,包括按总页数,每页分割为一个 pdf文件,由于免费版原因,可以每9页生成一个pdf,或者根据 指定页数 (页) 根据指定页数 分割pdf