2015-07-08 2 views
0

У меня есть pdf (или любые другие типы файлов, такие как .doc, .ppt и т. Д.), Которые содержат текст, а также изображения. Как я могу извлечь изображения из этих файлов с помощью Tika?Как извлечь изображения из файла с помощью Apache TIka?

Можно также запустить OCR на извлеченных изображениях с помощью Tess4j или любой другой библиотеки?

Это, как я называю Тика:

AutoDetectParser parser = new AutoDetectParser(); 
BodyContentHandler handler = new BodyContentHandler(writeLimit); 
Metadata metadata = new Metadata();   
InputStream stream = new FileInputStream("file.pdf");  
parser.parse(stream, handler, metadata); 

P.S. У меня есть tika-app.jar.

+0

Как вы называете Apache Tika? Способ включения рекурсии и/или сохранения встроенных ресурсов зависит от того, как вы это называете (java, facade, tika-app, tika-server и т. Д.) – Gagravarr

+0

@Gagravarr: Я отредактировал свое оригинальное сообщение, чтобы показать, как я называю Tika. –

+0

Имеет ли пример [Извлечь встроенные файлы из модуля примеров Apache Tika] (https://svn.apache.org/repos/asf/tika/trunk/tika-example/src/main/java/org/apache/tika/ example/ExtractEmbeddedFiles.java), не так ли? – Gagravarr

ответ

1

Способ сделать это:

 InputStream stream = new FileInputStream(inputFile); 

     Parser parser = new AutoDetectParser(); 
     BodyContentHandler handler = new BodyContentHandler(
       Integer.MAX_VALUE); 

     TesseractOCRConfig config = new TesseractOCRConfig(); 
     PDFParserConfig pdfConfig = new PDFParserConfig(); 
     ParseContext parseContext = new ParseContext(); 

     parseContext.set(TesseractOCRConfig.class, config); 
     parseContext.set(PDFParserConfig.class, pdfConfig); 
     parseContext.set(Parser.class, parser); // need to add this to make 
               // sure recursive parsing 
               // happens! 
     Metadata metadata = new Metadata(); 
     parser.parse(stream, handler, metadata, parseContext); 
     String text = handler.toString().trim(); 

1) Убедитесь, что у вас установлен тессеракт с помощью 'Тессеракта-OCr-настройки-3.05.00dev.exe' от: https://sourceforge.net/projects/tesseract-ocr-alt/files/ и иметь свой path (он будет установлен в файлы программы, если окна) помещается в переменную среды PATH. При необходимости перезапустите Windows. Передайте любой (да какой-либо!) Файл, и он будет извлечен. 2) Загрузить tess4j-3.0.0.jar от: https://sourceforge.net/projects/tess4j/?source=typ_redirect и передать этот сосуд с помощью:

<dependency> 
     <groupId>net.sourceforge.tess4j</groupId> 
     <artifactId>tess4j</artifactId> 
     <version>3.0.0</version> 
    </dependency> 

Затем эти:

<dependency> 
     <groupId>org.apache.tika</groupId> 
     <artifactId>tika-core</artifactId> 
     <version>1.13</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.apache.tika/tika-parsers --> 
    <dependency> 
     <groupId>org.apache.tika</groupId> 
     <artifactId>tika-parsers</artifactId> 
     <version>1.13</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.5</version> 
    </dependency> 

    <dependency> 
     <groupId>com.github.jai-imageio</groupId> 
     <artifactId>jai-imageio-core</artifactId> 
     <version>1.3.0</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna --> 
    <dependency> 
     <groupId>net.java.dev.jna</groupId> 
     <artifactId>jna</artifactId> 
     <version>4.2.2</version> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.11</version> 
    </dependency> 

Тем не менее, при использовании Ubuntu, тессеракт должен быть установлен используя apt-get. Он будет работать.

Смежные вопросы