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):
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。
NiFi 1.11.4
你好,
我发现了一个使用 ExecuteScript 从 pdf 文件中提取文本和图像的有趣解决方案 (Groovy):
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。