关于 PDFBox 解析器

今天晚上写了一下PDFBox,但存在一些问题比如,有的PDF文档解析的很好,但解析有些文档则报错.这个问题还没有解决.头痛ING

package jim.myPdfBox;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;

import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class myPdfBox {

	/**
	 * @param args
	 */
	public void geText(String file) throws Exception { 
		// 是否排序 
		   boolean sort = false; 
		// pdf文件名 
		   String pdfFile = file; 
		// 输入文本文件名称 
		   String textFile = null; 
		// 编码方式 
		   String encoding = "UTF-8"; 
		// 开始提取页数 
		   int startPage = 1; 
		// 结束提取页数 
		   int endPage = Integer.MAX_VALUE; 
		// 文件输入流,生成文本文件 
		   Writer output = null; 
		// 内存中存储的PDF Document 
		   PDDocument document = null; 
		try { 
		      try { 
		         // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件 
		         URL url = new URL(pdfFile); 
		         document = PDDocument.load(url); 
		         // 获取PDF的文件名 
		         String fileName = url.getFile(); 
		          
		// 以原来PDF的名称来命名新产生的txt文件 
		         if (fileName.length() > 4) { 
		            File outputFile = new File(fileName.substring(0, fileName.length() 
		- 4) + ".txt"); 
		            textFile = outputFile.getName(); 
		         } 
		      } catch (MalformedURLException e) { 
		          
		// 如果作为URL装载得到异常则从文件系统装载 
		         document = PDDocument.load(pdfFile); 
		         if (pdfFile.length() > 4) { 
		            textFile = pdfFile.substring(0, pdfFile.length() - 4) + ".txt"; 
		         } 
		      } 
		      // 文件输入流,写入文件倒textFile 
		      output = new OutputStreamWriter(new FileOutputStream(textFile), 
		encoding); 
		      // PDFTextStripper来提取文本 
		      PDFTextStripper stripper = null; 
		      stripper = new PDFTextStripper(); 
		// 设置是否排序 
		      stripper.setSortByPosition(sort); 
		// 设置起始页 
		      stripper.setStartPage(startPage); 
		// 设置结束页 
		      stripper.setEndPage(endPage); 
		// 调用PDFTextStripper的writeText提取并输出文本 
		      stripper.writeText(document, output); 
		      System.out.println("文件创建成功");
		   } finally { 
		      if (output != null) { 
		         // 关闭输出流 
		         output.close(); 
		      } 
		      if (document != null) { 
		         // 关闭PDF Document 
		         document.close(); 
		      } 
		   } 
		} 

		public static void main(String[] args) { 
		   myPdfBox test = new myPdfBox(); 
		   try { 
		      // 取得C盘下的index.pdf的内容 
		      test.geText("IK.pdf"); 
		   } catch (Exception e) { 
		      e.printStackTrace(); 
		   } 
		} 
}


你可能感兴趣的:(exception,String,null,url,encoding,output)