2016-04-26 4 views
0

私はTikaを使用してPDFファイルからテキストを抽出しようとしていますが、自分のウェブサイトでチュートリアルを実行していますが、Tikaさんから出力された文書の内容がありません

% PDF-1.5% endobj 1 0 OBJ < >>> μμμμ2 0 OBJ <> endobj 3 0 OBJ <>/ProcSet [/ PDF /テキスト/ ImageB/ImageC/ImageI] >>/[0 0 612 792]メディアサイズ/内容4 0 R /グループ<> /タブ/ S/StructParents 0 >> endobj 4 0 OBJ <> ストリーム XOE•Wßoâ8?〜GA 〜ä±?C? "QÚ "î '+?t?ö、@£Mi?ŒëíúÙ?mºœ=žùfæóÌ"Òô/º¹™〜èqGrúÙm7?UÛɧ¸¸、éönN・<ñhúH)! -Öã ''ŠŠ¡D-Q &? '' '' '' '' '' '¥<' '' '' '' '' '' '' '<' '' '' '' '' '' '' '' '' '' '' '' '' ãkDƒºFä?ºjHWK'Øa\?E1?Ldを†t.lnHŠ,¿wÕx'þm<¢U/S¢3ŽÔ?GGÏ2?ÒRZ¤Bë?+}÷O õµ°¹?Ù{ ½AL®EL?‘˜k?ͯ?3-¤6”Z+ŠãýL’HÄiXÐßq?½Ä&ªø¹Œ'6ª!^ÇJ‡•—¡hÚXÉ zæÝvà–•É„ê;ü0?;\àú??ïò1š+#àßH©?¤ÊÒÒòR&R?³r’ÜHeg¥Ü±H†#©ýÚ ·?V0†ffË”?ê??àÀ¨ÌY4Ï?dvWN PKA€Ó?§¥?þ?±R ?B/AYY?±Z /?Y?H?E?X?B?B?A?K??Y = C?A?8?D? ±d%Ã-Ð?= e¡§?É;%h "Bäi¯çCWºSÝGn4÷ú¨Þr#m¸÷ö5½¹¹ÅÅÅ¥q±2ÑOH«Ýž0®? :rO¯Ü¸UÓšÑíƒU字oiýÌ^väh_o7ŒÐT8÷〜「私

+Š³`ý»¶Ž• でそれをしようとしたとき、私も事の同じ種類を取得します?!? .docxの、あまりにも形式が、それは.TXTと正常に動作します。誰もが私が間違っているのか知っていますか?

BodyContentHandler handler = new BodyContentHandler(-1); 

     Metadata metadata = new Metadata(); 
     FileInputStream inputstream = new FileInputStream(new File("fake.pdf")); 
     ParseContext pcontext=new ParseContext(); 

     //Text document parser 
     TXTParser TexTParser = new TXTParser(); 

     TexTParser.parse(inputstream, handler, metadata,pcontext); 
     System.out.println("Contents of the document:" + handler.toString()); 

答えて

0

ちょうど私がTXTParser代わりのAutoDetectParserを使用していたが実現。誰かがこの質問を閉じるか削除できますか?

3

問題は、TXTParserを使用してPDFドキュメントを解析しようとしているようです。 PDFは、ファイル内にバイナリデータを含むPortable Document Formatの略です。

幸いにもApache Tikaには、解析しようとしているファイルの形式を自動的に検出するラッパーが付属しています。

Tika Documentationからこの例を試してみてください。

public String parseExample() throws IOException, SAXException, TikaException { 
    AutoDetectParser parser = new AutoDetectParser(); 
    BodyContentHandler handler = new BodyContentHandler(); 
    Metadata metadata = new Metadata(); 
    try (InputStream stream = ParsingExample.class.getResourceAsStream("test.pdf")) { 
     parser.parse(stream, handler, metadata); 
     return handler.toString(); 
    } 
} 
関連する問題