最近利用爬虫上网下了很多pdf文档,但有一小部分由于网络不稳定等原因,在下载过程中出现了错误,而网上又缺少批量判断的工具,因此调研了一些开源工具,写了一个小程序!
需要的jar包:
1、bouncycastle.jar
http://d.download.csdn.net/down/474865/dog3752
2、iText 5.0.2.jar
http://download.csdn.net/source/2262675
思路:
首先得到给定目录下的所有pdf文件,然后利用itext包来读取pdf,如果读取成功,则无错!否则出错!
代码:
PdfFileFilter
import java.io.File;
import java.io.FileFilter;
/*pdf文件过滤器
*/
public class PdfFileFilter implements FileFilter {
public boolean accept(File file) {
if (file.isFile()) {
String filename = file.getName().toLowerCase();
if (filename.endsWith(".pdf") == true) {
return true;
} else {
return false;
}
} else {
return true;
}
}
}
PDFCheck
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.PdfReader;
public class PDFCheck {
private static ArrayList<String> pdffiles = new ArrayList<String>();
/**
* 递归得到特定目录下的所有文件
*/
public static void getAllPdfFile(String basedir) {
File dir = new File(basedir);
File[] files = dir.listFiles(new PdfFileFilter());
if (files == null)
return;
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
getAllPdfFile(files[i].getAbsolutePath());
} else {
pdffiles.add(files[i].getAbsolutePath());
}
}
}
/**
* 循环检测
*/
private static void CheckPdfFiles(ArrayList<String> files) {
for (String file : files) {
boolean flag = false;
flag = check(file);
if(!flag){
System.out.println(file+"文件损坏");
}
}
}
/**
* 利用itext打开pdf文档
*/
private static boolean check(String file) {
boolean flag1 = false;
int n = 0;
try {
Document document = new Document(new PdfReader(file).getPageSize(1));
document.open();
PdfReader reader = new PdfReader(file);
n = reader.getNumberOfPages();
if (n != 0)
flag1 = true;
document.close();
} catch (IOException e) {
e.printStackTrace();
}
return flag1;
}
public static void main(String[] args) {
getAllPdfFile("D:\\WO\\");
if(pdffiles.size()>0)CheckPdfFiles(pdffiles);
}
}
分享到:
相关推荐
java基础开发第一册希望对你们有帮助,其他还有很多资料
java动态生成pdf文档,可以给pdf文档插入文字,图片。
java解析PDF格式的文件demo。JAVA实现PDF解析,对PDF文件中的文本内容可输出仅供参考学习,不喜勿喷。
文档具体内容如下: Java Platform Standard Edition Deployment Guide.pdf Java Platform Standard Edition Installation Guide.pdf Java Platform Standard Edition Core Libraries.pdf Java Platform Standard ...
Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换。 我们可以使用PDFBox开发可以创建,转换和操作PDF文档的Java程序。PDFBox的主要功能: Extract Text – 使用PDFBox,您可以从PDF文件中提取Unicode文本。 ...
在Java代码中使用itext生成PDF文档,实现PDF文档的导出。
各种java方面的pdf开发文档 java 开发手册 api spring pdf
Free Spire.PDF for JAVA 是一个 100% 免费的 PDF API, 在 JAVA 应用程序上调用该组件即可读取,写入和保存 PDF 文档,无需安装 Adobe Acrobat。使用此 JAVA PDF 组件,开发人员可以在 JAVA 应用程序(J2SE 和 J2EE...
java实现对pdf文档的增删改,只要2分物有所值欢迎下载
内包含java各种相关知识的文档 java javascript ssh Oracle sql
我们在项目当中经常要导出pdf文档,pdf文档还要按一定的格式导出,以下介绍导出pdf文档功能: 1)支持A4纸大小导出 2)指定文字显示的位置 3)支持表格展示数据 4)添加水印 5)代码全开源,在多个项目中使用,放心...
java中文帮助文档.pdf
1.功能:该API为适用于Java平台下,通过后端程序代码调用API接口操作PDF文档,可实现如下功能: 1.1 文档转换:PDF转图片/Word/SVG/XPS/HTML/XPS/TIFF、图片转PDF 1.2 文档操作:文档创建、合并、拆分、压缩、复制...
pdfbox java解析pdf文档jar包+源代码+帮助文档+example
Java帮助文档.pdf 学习资料 复习资料 教学资源
java使用itext对PDF进行签名签章。包括:java创建PDF文档,java对PDF进行加水印,java对PDF加图片水印。java对PDF进行签章。java读取p12秘钥库中证书对PDF进行签章加密。
整理了用java如何读取word文档,pdf文档的几种方法,含有程序
JAVA 生成pdf文档实例代码 Java生成pdf的demo
Java判断数字是否在制定范围 A B 中或者与A B 相等
培训机构的java基础pdf文档,是国内很好的培训机构的