PDDocument.load(file) 不是方法 (PDFBox)

Oja*_*kar 6 java eclipse pdf pdfbox

我想制作一个简单的程序,通过Java从pdf文件中获取文本内容。这是代码:

    PDFTextStripper ts = new PDFTextStripper();
    File file = new File("C:\\Meeting IDs.pdf");
    PDDocument doc1 = PDDocument.load(file);
    String allText = ts.getText(doc1);
    String gradeText = allText.substring(allText.indexOf("GRADE 10B"), allText.indexOf("GRADE 10C"));
    System.out.println("Meeting ID for English: "
            + gradeText.substring(gradeText.indexOf("English") + 7, gradeText.indexOf("English") + 20));
Run Code Online (Sandbox Code Playgroud)

这只是代码的一部分,但这是有问题的部分。错误是:The method load(File) is undefined for the type PDDocument


我从 JavaTPoint 学会了使用 PDFBox。我已按照正确的说明安装 PDFBox 库并将其添加到构建路径。我的PDFBox版本是3.0.0 我也搜索了源文件及其方法,但找不到那里的加载方法。

先感谢您。

sor*_*end 22

根据3.0 迁移指南,PDDocument.load方法已替换为以下Loader方法:

对于加载 PDF,PDDocument.load 已替换为 Loader 方法。加载 FDF 文档也是如此。

保存 PDF 时,现在默认以压缩模式完成。要覆盖它,请使用 PDDocument.save 和 CompressParameters.NO_COMPRESSION。

PDFBox 现在加载 PDF 文档,逐渐减少初始内存占用。如果仅访问 PDF 的某些部分,这也将减少消耗 PDF 所需的内存。请注意,由于 PDF 的性质,迭代所有页面、访问注释、签署 PDF 等用途可能仍会超时加载 PDF 的所有部分,从而导致与 PDFBox 2.0 类似的内存消耗。

输入文件不得用作保存操作的输出。当保存文件时第一次读取文件的部分内容时,它会损坏文件并引发异常。

因此,您可以切换到 PDFBox 的早期 2.x 版本,或者需要使用新Loader方法。我相信这应该有效:

File file = new File("C:\\Meeting IDs.pdf");
PDDocument doc1 = Loader.loadPDF(file);
Run Code Online (Sandbox Code Playgroud)