隨筆 - 100  文章 - 50  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          如果在系統中有比較多的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<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) {
             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 閱讀(5339) 評論(3)  編輯  收藏 所屬分類: java學習

          FeedBack:
          # re: Java檢查PDF文件是否損壞 2012-12-10 21:36 Chart
          Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString
          報上面這個異常呀.....有沒有API,不知道怎么出錯的....  回復  更多評論
            
          # re: Java檢查PDF文件是否損壞 2013-02-19 16:12 Ge-魔術彈
          謝謝 很好用 !  回復  更多評論
            
          # re: Java檢查PDF文件是否損壞 2013-02-19 16:13 Ge-魔術彈
          @Chart
          應該是沒有引入包   回復  更多評論
            
          主站蜘蛛池模板: 佛坪县| 连南| 环江| 万全县| 岗巴县| 永宁县| 交口县| 阳城县| 哈密市| 涿鹿县| 特克斯县| 灵寿县| 新乡县| 盐山县| 察隅县| 金华市| 汽车| 新郑市| 汉源县| 阿尔山市| 京山县| 读书| 大石桥市| 荔浦县| 海口市| 天镇县| 新巴尔虎左旗| 碌曲县| 图木舒克市| 汉川市| 夏津县| 耒阳市| 齐河县| 靖安县| 营口市| 琼中| 信宜市| 襄城县| 康保县| 新营市| 汨罗市|