2011-07-11 11 views

答えて

5

これはlucidからである:

InputStream input = new FileInputStream(new File(resourceLocation)); 
ContentHandler textHandler = new BodyContentHandler(); 
Metadata metadata = new Metadata(); 
PDFParser parser = new PDFParser(); 
parser.parse(input, textHandler, metadata); 
input.close(); 
out.println("Title: " + metadata.get("title")); 
out.println("Author: " + metadata.get("Author")); 
out.println("content: " + textHandler.toString()); 

代わりにあなたは自動的にファイルの差分タイプを処理するためティカのAutoDetectParserを使用することができますPDFParser作成する:

Parser parser = new AutoDetectParser(); 
6

documentationを確認してください。可能です。

java -jar tika-app-0.9.jar -t http://stackoverflow.com/questions/6656849/extract-the-text-from-url-using-tika 

はあなたにこのページ上のテキストが表示されます。

+0

を使用していますそして、私は.. Javaコードでこれを使用して、テキストファイル内のURLからテキストを保存する必要がある場合、それも可能です。.. ??私はmavenを使用していません。私はjavaコードでこれを使用したいと考えています。 – ferhan

+1

antとtikaを使用する方法は、Mavenでの使用方法の説明の下、コマンドラインツールの指示の直上です。それを埋め込む方法についていくつかのインスピレーションが必要な場合は、ウェブサイトの情報があると確信しています。また、コマンドラインツールのソースも常にあります。 – fvu

+0

これはドキュメントの良い例になります... – topchef

1

URLからではないローカルファイルからコンテンツを抽出するためにこのコードを使用してください:

byte[] raw = content.getContent(); 
    ContentHandler handler = new BodyContentHandler(); 
    Metadata metadata = new Metadata(); 
    Parser parser = new AutoDetectParser(); 
    parser.parse(new ByteArrayInputStream(raw), handler, metadata, new ParseContext()); 
    LOG.info("content: " + handler.toString()); 
+0

また、TikaInputStream.get(byte [])を使用してInputStreamを構築する – Gagravarr

+0

ありがとう、私はなぜそれが私に空の文字列を与えているのか分からないhandler.toString() !!! –

3

はい、あなたはそれを行うことができます。ここにコードがあります。このコードは、Apache http client

HttpGet httpget = new HttpGet("http://url.here"); 
    HttpEntity entity = null; 
    HttpClient client = new DefaultHttpClient(); 
    HttpResponse response = client.execute(httpget); 
    entity = response.getEntity(); 
    if (entity != null) { 
     InputStream instream = entity.getContent(); 
     BodyContentHandler handler = new BodyContentHandler(); 
     Metadata metadata = new Metadata(); 
     Parser parser = new AutoDetectParser(); 
     parser.parse(instream, handler, metadata, new ParseContext()); 
     String plainText = handler.toString(); 
     FileWriter writer = new FileWriter("/scratch/cache/output.txt"); 
     writer.write(plainText); 
     writer.close(); 
     System.out.println("done"); 
    } 
関連する問題