diff --git a/pom.xml b/pom.xml
index 27a03e73..281fae7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -262,7 +262,7 @@
org.apache.pdfbox
pdfbox
- 2.0.28
+ 3.0.0
diff --git a/src/main/java/technology/tabula/CommandLineApp.java b/src/main/java/technology/tabula/CommandLineApp.java
index 3a6773a9..1abb7e77 100644
--- a/src/main/java/technology/tabula/CommandLineApp.java
+++ b/src/main/java/technology/tabula/CommandLineApp.java
@@ -158,7 +158,7 @@ public void extractFileInto(File pdfFile, File outputFile) throws ParseException
private void extractFile(File pdfFile, Appendable outFile) throws ParseException {
PDDocument pdfDocument = null;
try {
- pdfDocument = this.password == null ? PDDocument.load(pdfFile) : PDDocument.load(pdfFile, this.password);
+ pdfDocument = this.password == null ? org.apache.pdfbox.Loader.loadPDF(pdfFile) : org.apache.pdfbox.Loader.loadPDF(pdfFile, this.password);
PageIterator pageIterator = getPageIterator(pdfDocument);
List tables = new ArrayList<>();
diff --git a/src/main/java/technology/tabula/debug/Debug.java b/src/main/java/technology/tabula/debug/Debug.java
index 91609045..02f860df 100644
--- a/src/main/java/technology/tabula/debug/Debug.java
+++ b/src/main/java/technology/tabula/debug/Debug.java
@@ -215,7 +215,7 @@ public static void renderPage(String pdfPath, String outPath, int pageNumber, Re
boolean drawColumns, boolean drawCharacters, boolean drawArea, boolean drawCells,
boolean drawUnprocessedRulings, boolean drawProjectionProfile, boolean drawClippingPaths,
boolean drawDetectedTables) throws IOException {
- PDDocument document = PDDocument.load(new File(pdfPath));
+ PDDocument document = org.apache.pdfbox.Loader.loadPDF(new File(pdfPath));
ObjectExtractor oe = new ObjectExtractor(document);
@@ -349,7 +349,7 @@ public static void main(String[] args) throws IOException {
if (pages == null) {
// user specified all pages
- PDDocument document = PDDocument.load(pdfFile);
+ PDDocument document = org.apache.pdfbox.Loader.loadPDF(pdfFile);
int numPages = document.getNumberOfPages();
pages = new ArrayList<>(numPages);
diff --git a/src/main/java/technology/tabula/detectors/NurminenDetectionAlgorithm.java b/src/main/java/technology/tabula/detectors/NurminenDetectionAlgorithm.java
index fb43622a..c3bab2be 100644
--- a/src/main/java/technology/tabula/detectors/NurminenDetectionAlgorithm.java
+++ b/src/main/java/technology/tabula/detectors/NurminenDetectionAlgorithm.java
@@ -804,8 +804,7 @@ private List getVerticalRulings(BufferedImage image) {
private PDDocument removeText(PDPage page) throws IOException {
PDFStreamParser parser = new PDFStreamParser(page);
- parser.parse();
- List