pdfbox解析pdfドキュメント
2157 ワード
一、ダウンロード住所:http://sourceforge.net/projects/pdfbox/?source=dlpダウンロードした後、libのPDFBox.jarをカバンに引用しました。このカバンを導入するだけでは足りないです。externalのjarファイルを導入する必要があります。
二、ソースコードの作成:
三、よくある異常分析
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を利用して操作していない可能性があります。
二、ソースコードの作成:
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を利用して操作していない可能性があります。