blob: 01086ccff139c74a6655d16704a7b61200b6fb8f [file] [log] [blame]
--------------------------
Supported Document Formats
--------------------------
~~ Licensed to the Apache Software Foundation (ASF) under one or more
~~ contributor license agreements. See the NOTICE file distributed with
~~ this work for additional information regarding copyright ownership.
~~ The ASF licenses this file to You under the Apache License, Version 2.0
~~ (the "License"); you may not use this file except in compliance with
~~ the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing, software
~~ distributed under the License is distributed on an "AS IS" BASIS,
~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~~ See the License for the specific language governing permissions and
~~ limitations under the License.
Supported Document Formats
This page lists all the document formats supported by Apache Tika 0.6.
Follow the links to the various parser class javadocs for more detailed
information about each document format and how it is parsed by Tika.
%{toc|section=1|fromDepth=1}
* {HyperText Markup Language}
The HyperText Markup Language (HTML) is the lingua franca of the web.
Tika uses the {{{http://home.ccil.org/~cowan/XML/tagsoup/}TagSoup}}
library to support virtually any kind of HTML found on the web.
The output from the
{{{api/org/apache/tika/parser/html/HtmlParser.html}HtmlParser}} class
is guaranteed to be well-formed and valid XHTML, and various heuristics
are used to prevent things like inline scripts from cluttering the
extracted text content.
* {XML and derived formats}
The Extensible Markup Language (XML) format is a generic format that can
be used for all kinds of content. Tika has custom parsers for some widely
used XML vocabularies like XHTML, OOXML and ODF, but the default
{{{api/org/apache/tika/parser/xml/DcXMLParser.html}DcXMLParser}}
class simply extracts the text content of the document and ignores any XML
structure. The only exception to this rule are Dublin Core metadata
elements that are used for the document metadata.
* {Microsoft Office document formats}
Microsoft Office and some related applications produce documents in the
generic OLE 2 Compound Document and Office Open XML (OOXML) formats. The
older OLE 2 format was introduced in Microsoft Office version 97 and was
the default format until Office version 2007 and the new XML-based
OOXML format. The
{{{api/org/apache/tika/parser/microsoft/OfficeParser.html}OfficeParser}}
and
{{{api/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.html}OOXMLParser}}
classes use {{{http://poi.apache.org/}Apache POI}} libraries to support
text and metadata extraction from both OLE2 and OOXML documents.
* {OpenDocument Format}
The OpenDocument format (ODF) is used most notably as the default format
of the OpenOffice.org office suite. The
{{{api/org/apache/tika/parser/odf/OpenDocumentParser.html}OpenDocumentParser}}
class supports this format and the earlier OpenOffice 1.0 format on which
ODF is based.
* {Portable Document Format}
The {{{api/org/apache/tika/parser/pdf/PDFParser.html}PDFParser}} class
parsers Portable Document Format (PDF) documents using the
{{{http://pdfbox.apache.org/}Apache PDFBox}} library.
* {Electronic Publication Format}
The {{{api/org/apache/tika/parser/epub/EpubParser.html}EpubParser}} class
supports the Electronic Publication Format (EPUB) used for many digital
books.
* {Rich Text Format}
The {{{api/org/apache/tika/parser/rtf/RTFParser.html}RTFParser}} class
uses the standard javax.swing.text.rtf feature to extract text content
from Rich Text Format (RTF) documents.
* {Compression and packaging formats}
Tika uses the {{{http://commons.apache.org/compress/}Commons Compress}}
library to support various compression and packaging formats. The
{{{api/org/apache/tika/parser/pkg/PackageParser.html}PackageParser}}
class and its subclasses first parse the top level compression or
packaging format and then pass the unpacked document streams to a
second parsing stage using the parser instance specified in the
parse context.
* {Text formats}
Extracting text content from plain text files seems like a simple task
until you start thinking of all the possible character encodings. The
{{{api/org/apache/tika/parser/txt/TXTParser.html}TXTParser}} class uses
encoding detection code from the {{{http://site.icu-project.org/}ICU}}
project to automatically detect the character encoding of a text document.
* {Audio formats}
Tika can detect several common audio formats and extract metadata
from them. Even text extraction is supported for some audio files that
contain lyrics or other textual content. The
{{{api/org/apache/tika/parser/audio/AudioParser.html}AudioParser}}
and {{{api/org/apache/tika/parser/audio/MidiParser.html}MidiParser}}
classes use standard javax.sound features to process simple audio
formats, and the
{{{api/org/apache/tika/parser/mp3/Mp3Parser.html}Mp3Parser}} class
adds support for the widely used MP3 format.
* {Image formats}
The {{{api/org/apache/tika/parser/image/ImageParser.html}ImageParser}}
class uses the standard javax.imageio feature to extract simple metadata
from image formats supported by the Java platform. More complex image
metadata is available through the
{{{api/org/apache/tika/parser/jpeg/JpegParser.html}JpegParser}} class
that uses the metadata-extractor library to supports Exif metadata
extraction from Jpeg images.
* {Video formats}
Currently Tika only supports the Flash video format using a simple
parsing algorithm implemented in the
{{{api/org/apache/tika/parser/flv/FLVParser}FLVParser}} class.
* {Java class files and archives}
The {{{api/org/apache/tika/parser/asm/ClassParser}ClassParser}} class
extracts class names and method signatures from Java class files, and
the {{{api/org/apache/tika/parser/pkg/ZipParser.html}ZipParser}} class
supports also jar archives.
* {The mbox format}
The {{{api/org/apache/tika/parser/mbox/MboxParser.html}MboxParser}} can
extract email messages from the mbox format used by many email archives
and Unix-style mailboxes.