😎

PDFBox 3.0からPDDocument.loadメソッドが廃止された

2024/08/05に公開

これからの書き方

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クラスを使って読み込むように変更になりました。

PDDocumentloadメソッドでは、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により詳細な情報が載っています。
https://pdfbox.apache.org/3.0/migration.html

Discussion