NiFi ExecuteScript (Groovy):使用 Pdfbox 从 PDF 中提取 text/images:加载模块时出错

NiFi ExecuteScript (Groovy): Using Pdfbox to extract text/images from PDF: error loading modules

NiFi 1.11.4

你好,

我发现了一个使用 ExecuteScript 从 pdf 文件中提取文本和图像的有趣解决方案 (Groovy):

(NiFi template on github)

Groovy 脚本以

开头
import org.apache.pdfbox.pdmodel.*
import org.apache.pdfbox.util.*
def flowFile = session.get()
if(!flowFile) return
def s = new PDFTextStripper()

使用 PDFBox 1.8.16 脚本 运行 没有错误,但 PDFTextStripper 始终为空(是的:pdf 文件包含文本,而不是图像)

使用 PDFBox 2.0.19 脚本没有 运行:

模块目录 for pdfbox 2.0

29.04.2020  12:56         2.715.618 pdfbox-2.0.19.jar
29.04.2020  19:36           257.911 pdfbox-debugger-2.0.19.jar
29.04.2020  19:36            81.206 pdfbox-tools-2.0.19.jar
29.04.2020  19:36           247.912 preflight-2.0.19.jar
29.04.2020  19:36           132.182 xmpbox-2.0.19.jar
29.04.2020  19:36         1.561.265 fontbox-2.0.19.jar

错误

Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: 
startup failed:
Script9.groovy: 18: unable to resolve class PDFTextStripper 
@ line 18, column 9.def 
  s = new PDFTextStripper()

知道吗,缺少什么?

谢谢 弗兰克

PDFTextStripper 已重构为新包。在 pdfbox 1.8.x 中,它确实在 org.apache.pdfbox.util 中,但从 2.0.0 开始,它在 org.apache.pdfbox.text.

因此,您需要调整 import 语句以用于 pdfbox 2.x。