java - Pdfbox 为什么无法加载文档?

标签 java maven pdf undefined 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>

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

最佳答案

所以问题是我的 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

关于java - Pdfbox 为什么无法加载文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66934754/

相关文章:

java - 使用流和 Java 8 的 if/else 表示

java - 为什么抛出方法签名的一部分

java - java克隆对象的方法

pdf - 在单个四开 PDF 输出中创建多页面方向

java - log4j2通过代码添加记录器+附加器

java - 将 Maven Artifact 发布到本地 Ivy 存储库,递归地及其依赖项

java - 在 exec-maven-plugin 中设置 systemProperty 不起作用

java - 如何(安全地)删除 Eclipse 中不必要的 Maven 依赖项?

java - 在 Java 中打开 PDF 文件并使用双倍行距

java - 使用java发现在不使用itext的情况下将页码添加到pdf中的困难