2017-05-16 20 views
0

apache tikaを使用してヘッダーとフッターなしで(pdf、docx、doc、odt)のような文書を抽出する方法。Apache Tikaを使用したヘッダーとフッターの抽出をスキップする方法

+0

[、最小完全、かつ検証例を作成する方法](HTTPをお読みください:// stackoverflow.com/help/mcve)。 –

+0

look http://stackoverflow.com/questions/16862346/ignoring-header-footer-text-when-using-tikaおよびhttps://coderanch.com/t/679868/Apache-Tika-Skipping-Header-footer。 –

+0

XHTMLとして取り込み、ヘッダーとフッターのdivを取り除き、必要に応じてプレーンテキストにダウンミックスしますか? – Gagravarr

答えて

0

私はあなたがプロ文法的にそれを行うことができますいくつかは

import org.apache.tika.exception.TikaException; 
import org.apache.tika.io.TikaInputStream; 
import org.apache.tika.parser.AutoDetectParser; 
import org.apache.tika.parser.html.BoilerpipeContentHandler; 
import org.apache.tika.sax.BodyContentHandler; 
import org.xml.sax.ContentHandler; 
import org.xml.sax.SAXException; 
import org.apache.tika.metadata.Metadata; 
import java.io.File; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.URL; 

public class NewtikaXpath { 
    public static void main(String args[]) throws IOException, SAXException, TikaException { 
     AutoDetectParser parser = new AutoDetectParser(); 
     ContentHandler textHandler = new BodyContentHandler(); 
     Metadata xmetadata = new Metadata(); 
     try (InputStream stream = TikaInputStream.get(new URL("your favourite url"))){ 
      parser.parse(stream, new BoilerpipeContentHandler(textHandler), xmetadata); 
      System.out.println("text:\n" + textHandler.toString()); 
     } 
    } 

} 
+0

ありがとうございました。このコードはhtmlファイルでうまく機能します。私はdoc、docx、odt、pdf @Lakshmanが必要です –

0

ウェル(PDFおよびHTML)を解析すると、ドキュメントのために働いていない、DOCX、XLSX、XLS形式され、すべてのファイル形式でこのコードをテストしました。ここでどのように、それはDOCX、PPTX、ODT PDFファイルを含むすべてティカサポート文書のために働いています

AutoDetectParser parser = new AutoDetectParser(); 
 
ContentHandler contentHandler = new BodyContentHandler(); 
 
inputStream = new BufferedInputStream(new FileInputStream(inputFileName)); 
 
Metadata metadata = new Metadata(); 
 

 
OfficeParserConfig officeParserConfig = new OfficeParserConfig(); 
 
officeParserConfig.setIncludeHeadersAndFooters(false); 
 
parseContext.set(OfficeParserConfig.class, officeParserConfig); 
 

 
parser.parse(inputStream, contentHandler, metadata, parseContext); 
 
System.out.println(contentHandler.toString());

関連する問題