首页 > 解决方案 > Pdfbox 为什么我不能加载文档?

问题描述

所以我在使用 PDDocument.load(File) 时无法加载 PDDocument。我尝试卸载并重新安装 PDFBox 的 jar,以查看 PDDocument 对象是否可以正确呈现。仍然没有工作,我很不确定为什么。PDDocument 对象似乎只有它的实例方法,而不是它记录的静态方法。我只有一个关于 PDDocument.load(file) 的运行时错误 NoSuchMethodError。

这是我的代码:

package main;

import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class Main {
    public static void main(String[] args) throws IOException {
        File f = new File("C:/Users/user/Desktop/sample/Resume_Michael_Sinclair.pdf");
        PDDocument doc = PDDocument.load(f);
        
        PDFTextStripper tp = new PDFTextStripper();
        System.out.println(tp.getText(doc));
        doc.close();
    }
}

pom.xml 是用来呈现 pdfbox 对象的内容,如果有帮助的话,这里是我的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Pdfeasy_Editor</groupId>
  <artifactId>Pdfeasy_Editor</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <build>
      <sourceDirectory>src</sourceDirectory>
      <plugins>
         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
               <source>1.8</source>
               <target>1.8</target>
            </configuration> 
         </plugin>
      </plugins> 
   </build> 
   
   <dependencies>  
      <dependency> 
         <groupId>org.apache.pdfbox</groupId> 
         <artifactId>pdfbox</artifactId> 
         <version>2.0.1</version> 
      </dependency>   
   
      <dependency> 
         <groupId>org.apache.pdfbox</groupId> 
         <artifactId>fontbox</artifactId> 
         <version>2.0.0</version> 
      </dependency>
      
      <dependency>  
         <groupId>org.apache.pdfbox</groupId> 
         <artifactId>jempbox</artifactId> 
         <version>1.8.11</version> 
      </dependency> 
        
      <dependency>
         <groupId>org.apache.pdfbox</groupId> 
         <artifactId>xmpbox</artifactId> 
         <version>2.0.0</version> 
      </dependency> 
     
      <dependency> 
         <groupId>org.apache.pdfbox</groupId> 
         <artifactId>preflight</artifactId> 
         <version>2.0.0</version> 
      </dependency> 
     
      <dependency> 
         <groupId>org.apache.pdfbox</groupId> 
         <artifactId>pdfbox-tools</artifactId> 
         <version>2.0.0</version> 
      </dependency>

   </dependencies>
   
</project>

任何帮助将不胜感激 :)。

标签: javamavenpdfundefinedpdfbox

解决方案


所以问题是我的 pom.xml 文件有错误的库版本。PDFBox 3.0.0 对我来说没有完整的功能,所以我将我的库切换到了官方版本 2.0.23。将所有版本设置为 2.0.23 后,例如:

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox-tools</artifactId>
    <version>2.0.23</version>
</dependency>

这解决了问题,我发布的初始语法现在有效!感谢@andrewjames 和@mkl


推荐阅读