pdfbox解析pdfドキュメント

2157 ワード

一、ダウンロード住所:http://sourceforge.net/projects/pdfbox/?source=dlpダウンロードした後、libのPDFBox.jarをカバンに引用しました。このカバンを導入するだけでは足りないです。externalのjarファイルを導入する必要があります。
 
二、ソースコードの作成:
public class PdfParser {
	/**
	 * 
	 * @param path
	 *                
	 * @param ts
	 *            pdf      ,                   ,  
	 * @return
	 * @throws IOException
	 */
	public static String getContent(String path, PDFTextStripper ts,StringWriter writer)
			throws IOException {
  //PDFTextStripper ts=new PDFTextStripper(); 
  // StringWriter writer=new StringWriter();
		FileInputStream fis = new FileInputStream(path);
		PDDocument pdfDocument = PDDocument.load(fis);
		ts.writeText(pdfDocument, writer);
		String s = writer.getBuffer().toString();
		pdfDocument.close();
		writer.close();
		fis.close();
		return s;
	}

	public static void main(String args[]) throws IOException {
		PDFTextStripper ts = new PDFTextStripper();
		StringWriter writer= new StringWriter();
		String s = getContent(
				"E:\\$RECYCLE.BIN\\S-1-5-21-3743469558-3320822278-4247495569-500\\$R19UCXC\\architecture\\startup\\serverStartup.pdf",
				ts,writer);
		System.out.println(s);
		String s1 = getContent(
				"E:\\$RECYCLE.BIN\\S-1-5-21-3743469558-3320822278-4247495569-500\\$R19UCXC\\architecture\\startup\\serverStartup.pdf",
				ts,writer);
		System.out.println(s1);
		
		String s2 = getContent(
				"E:\\$RECYCLE.BIN\\S-1-5-21-3743469558-3320822278-4247495569-500\\$RC3NO6U\\[     Struts2      ]_017.Struts2  Servlet API Web        (      Mock  )\\                    .pdf",
				ts,writer);
		
	

	}
 
 
三、よくある異常分析
java.lang.Throwable:Warning:You did not close the PDF Dcument at org.pdfbox.co s.C.OSTDcument.finalize(COSMDcument.java:418) at java.lang.ref.Finalizer.invoke Finalize Method(Native Method) at java.lang.ref.Finalizer.run Finalizer(Uniknown Source) at java.lang.ref.Finalizer.access$100(Uniknown Source) at java.lang.ref.Finalizer$Finalizer Thread.run(Uniknown Source)
     
上のコードによっては異常が発生しません。異常が発生した場合は、stingWriterを利用して操作していない可能性があります。