如果在系统中有比较多的PDF文件,但是的pdf文件可能被损坏了,我们可以利用itext 用来检测

首先下载itext包

http://sourceforge.net/projects/itext/files/

然后在执行以下代码

import java.io.File;

import java.io.FileFilter;

import java.io.IOException;

import java.util.ArrayList;

import com.itextpdf.text.Document;

import com.itextpdf.text.pdf.PdfReader;

public class TestPdf {

private static ArrayList pdffiles = new ArrayList();

/**

* 递归得到特定目录下的所有文件

*/

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 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) {

System.out.println(e.getMessage());

}

return flag1;

}

public static void main(String[] args) {

getAllPdfFile("C:\\CO_uat\\");

if (pdffiles.size() > 0)

CheckPdfFiles(pdffiles);

System.out.println("No break down file");

}

}

/*

* pdf文件过滤器

*/

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;

}

}

}

posted on 2010-09-01 18:20 fly 阅读(3950) 评论(3)  编辑  收藏 所属分类: java学习

java判断是否安装了pdf_Java检查PDF文件是否损坏相关推荐

  1. java判断是否安装了pdf_java判断上传文件是否为pdf java图像上传中如何判断是否是jpg格式...

    java怎么判断有没有上传文件 Java平台如何判断用户上传的文件是否是图片不要辜负了自己受过的苦难,这样善良又努力的一个你,一定会得到曾梦寐以分享的所有美好. if(typeof FileReade ...

  2. java 使用itextpdf工具实现HTML转PDF文件

    java 使用itextpdf工具实现HTML转PDF文件 本文转载https://my.oschina.net/960823/blog/1588166内容 demo maven依赖包 <dep ...

  3. Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...

  4. java实现通过url实现浏览器下载pdf文件

    java实现通过url实现浏览器下载pdf文件 // 下载pdf文件工具类 public static void toDownload(HttpServletRequest request, Http ...

  5. Java实现多张图片合并成一份PDF文件

    Java实现多张图片合并成一份PDF文件,一行两列展示 引入依赖包 <dependency><groupId>com.lowagie</groupId><ar ...

  6. java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo

    ## Java实现PDF生成并且打印pdf文件(附demo) #### 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现p ...

  7. java 导出订单明细_订单导出pdf文件

    原理 原始数据->加载模板->临时文件->PDF文件 方案准备 html模板转pdf 难点:1. 每次变化都要找设计师:2. html样式很难控制(个人不擅长):3.html转pdf ...

  8. java+icepdf+下载_Java使用icepdf将pdf文件按页转成图片

    本文实例为大家分享了Java使用icepdf将pdf文件按页转成图片的具体代码,供大家参考,具体内容如下 Maven icepdf包,这里过滤掉jai-core org.icepdf.os icepd ...

  9. java实现多张条码转成pdf文件

    目录 需求 管理后台通过查询并生成多张条码并一起打印出来 思路 思路一 思路二 代码编写 maven pom文件 方法一 步骤一:创建barcode 条码文件 步骤二:将创建的barcode 条码文件 ...

最新文章

  1. 美国12大科技公司如何参与自动驾驶?
  2. vue --- 使用字符串'api'跨域请求资源
  3. 计算机网络【四】数据链路层基本概念+点到点通信(PPP协议)
  4. Q205 同构字符串
  5. 人与人之间交往最重要的是什么?
  6. 【Qt教程】1.11 - Qt5 标准对话框QMessageBox(关于、错误、信息、警告、问题、颜色、字体、文件对话框)
  7. [转]Handsontable对单元格的操作
  8. Java中栈和队列的类
  9. python词频统计并按词频排序
  10. CCS 软件仿真 支持6678
  11. android iphone滑动解锁,苹果iOS10锁屏详解:“滑动来解锁”已成为过去
  12. Hibernate VS iBATIS (转自ITEYE davy)
  13. 云片网实现短信验证码
  14. Maya Python 第七章 使用Maya命令创建基本工具 7.1-7.3
  15. 分体式耳机是什么意思?2021年高音质分体式蓝牙耳机推荐
  16. 《鲸鱼安慰了大海》精选篇章
  17. 如何在Windows10下安装ubuntu双系统(无U盘)
  18. 转:vim的复制粘贴小结
  19. R 实现分层抽样教程
  20. [附源码]JSP+ssm计算机毕业设计大媛小南美味佳肴网站8p0nh【源码、数据库、LW、部署】

热门文章

  1. ASP.NET Web API路由规则(二)
  2. Pycharm中代码自动换行(亲测)
  3. 微软为何痛失移动操作系统?
  4. MySQL的char与varchar:类型长度 记录字节 截取报错 保存trim 数据校验 存储占用
  5. Linux的cp -a与cp -p
  6. java 切面获取参数_每天分享一点Java知识(spring-aop)
  7. php中如何让这段东西不显示出来,数据显示处理,该怎么处理
  8. mysql ndb_mysql8 参考手册--MySQL NDB群集8.0
  9. php中isdefin,在PHP中定義全局常量數組的最“優雅”方法是什么
  10. 微型计算机中abcd是指,一级笔试模拟试题二(答案)