最近在做抓取资源的工作 , 发现有些PDF下载下来不完整 ,打不开 ,但程序又没报错, 导致数据库的存放路径也更新, 下次重新抓取的话也不会抓这些错误的 .
于是想了个笨办法 . 在下载完PDF后, 加了个判断 . 看PDF能否打开, 期间用了PDFBox. 发现用
//获取文字
PDDocument doc = PDDocument.load(file_path_name);
PDFTextStripper stripper = new PDFTextStripper();
// 设置是否排序
stripper.setSortByPosition(true);
直接报未将对象引用实例 , 用获取图片方法
document = PDDocument.load(file_path_name);
PDDocumentCatalog cata = document.getDocumentCatalog();
COSDictionary cosDictionary = cata.getCOSDictionary();
也是报未将对象引用实例 .
原因可能是下载的PDF都是图文混排的吧 .
最后解决办法就是用iTextSharp 插件 . 加PdfReader reader = new PdfReader(file_path_name); PDF打不开的话直接跳catch . 解决 .