NiFi ExecuteScript (Groovy): использование Pdfbox для извлечения текста / изображений из PDF: ошибка загрузки модулей - PullRequest
0 голосов
/ 30 апреля 2020

NiFi 1.11.4

Привет,

Я нашел интересное решение для извлечения текста и изображений из PDF-файлов с помощью ExecuteScript (Groovy):

( Шаблон NiFi на 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 скрипт не запустился:

Каталог модулей для 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()

Есть идеи, чего не хватает?

Спасибо Франк

1 Ответ

0 голосов
/ 01 мая 2020

PDFTextStripper был переработан в новый пакет. В pdfbox 1.8.x он действительно был в org.apache.pdfbox.util, но начиная с 2.0.0 он находится в org.apache.pdfbox.text.

Таким образом, вам нужно настроить import операторы для использования с pdfbox 2.x.

...