😎
PDFBox 3.0からPDDocument.loadメソッドが廃止された
これからの書き方
try (PDDocument document = Loader.loadPDF(byteArray)) {
PDFTextStripper pdfStripper = new PDFTextStripper();
System.out.println(pdfStripper.getText(document));
} catch (Exception e) {
e.printStackTrace();
}
環境
JDK 21
org.apache.pdfbox pdfbox 3.0.2
変更点
PDDocumentのload
メソッドの代わりにLoaderクラスを使って読み込むように変更になりました。
PDDocumentのload
メソッドでは、inputStream
を引数にとることができましたが、Loader
では書き方が変わりましたので紹介します。
3.0より前(2.0.32)
try (PDDocument document = PDDocument.load(inputStream)) {
PDFTextStripper pdfStripper = new PDFTextStripper();
return pdfStripper.getText(document);
} catch (Exception e) {
e.printStackTrace();
}
3.0以降
try (PDDocument document = Loader.loadPDF(new RandomAccessReadBuffer(inputStream))) {
PDFTextStripper pdfStripper = new PDFTextStripper();
return pdfStripper.getText(document);
} catch (Exception e) {
e.printStackTrace();
}
合わせて読みたい
PDFBox 3.0 Migration Guideにより詳細な情報が載っています。
Discussion