Package org.apache.tika.detect.microsoft
Class POIFSContainerDetector
- java.lang.Object
-
- org.apache.tika.detect.microsoft.POIFSContainerDetector
-
- All Implemented Interfaces:
Serializable
,Detector
public class POIFSContainerDetector extends Object implements Detector
A detector that works on a POIFS OLE2 document to figure out exactly what the file is. This should work for all OLE2 documents, whether they are ones supported by POI or not.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static MediaType
COMP_OBJ
Some other kind of embedded document, in a CompObj container within another OLE2 documentstatic MediaType
DGN_8
static MediaType
DOC
Microsoft Wordstatic MediaType
DRM_ENCRYPTED
TIKA-3666 MSOffice or other file encrypted with DRM in an OLE containerstatic MediaType
ESRI_LAYER
static MediaType
GENERAL_EMBEDDED
General embedded document type within an OLE2 containerstatic MediaType
MPP
Microsoft Projectstatic MediaType
MS_EQUATION
Equation embedded in Office docsstatic MediaType
MS_GRAPH_CHART
Graph/Charts embedded in PowerPoint and Excelstatic MediaType
MSG
Microsoft Outlookstatic String
OCX_NAME
static MediaType
OLE
The OLE base file formatstatic MediaType
OLE10_NATIVE
An OLE10 Native embedded document within another OLE2 documentstatic MediaType
OOXML_PROTECTED
The protected OOXML base file formatstatic MediaType
PPT
Microsoft PowerPointstatic MediaType
PUB
Microsoft Publisherstatic MediaType
SDA
StarOffice Drawstatic MediaType
SDC
StarOffice Calcstatic MediaType
SDD
StarOffice Impressstatic MediaType
SDW
StarOffice Writerstatic MediaType
SLDWORKS
SolidWorks CAD filestatic MediaType
VSD
Microsoft Visiostatic MediaType
WPS
Microsoft Worksstatic MediaType
XLR
Microsoft Works Spreadsheet 7.0static MediaType
XLS
Microsoft Excel
-
Constructor Summary
Constructors Constructor Description POIFSContainerDetector()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description MediaType
detect(InputStream input, Metadata metadata)
Detects the content type of the given input document.static MediaType
detect(Set<String> names)
Deprecated.Usedetect(Set, DirectoryEntry)
and pass the root entry of the filesystem whose type is to be detected, as a second argument.static MediaType
detect(Set<String> anyCaseNames, org.apache.poi.poifs.filesystem.DirectoryEntry root)
Internal detection of the specific kind of OLE2 document, based on the names of the top-level streams within the file.void
setMarkLimit(int markLimit)
If a TikaInputStream is passed in todetect(InputStream, Metadata)
, and there is not an underlying file, this detector will spool up tomarkLimit
to disk.
-
-
-
Field Detail
-
OLE
public static final MediaType OLE
The OLE base file format
-
OOXML_PROTECTED
public static final MediaType OOXML_PROTECTED
The protected OOXML base file format
-
DRM_ENCRYPTED
public static final MediaType DRM_ENCRYPTED
TIKA-3666 MSOffice or other file encrypted with DRM in an OLE container
-
GENERAL_EMBEDDED
public static final MediaType GENERAL_EMBEDDED
General embedded document type within an OLE2 container
-
OLE10_NATIVE
public static final MediaType OLE10_NATIVE
An OLE10 Native embedded document within another OLE2 document
-
COMP_OBJ
public static final MediaType COMP_OBJ
Some other kind of embedded document, in a CompObj container within another OLE2 document
-
MS_GRAPH_CHART
public static final MediaType MS_GRAPH_CHART
Graph/Charts embedded in PowerPoint and Excel
-
MS_EQUATION
public static final MediaType MS_EQUATION
Equation embedded in Office docs
-
OCX_NAME
public static final String OCX_NAME
- See Also:
- Constant Field Values
-
XLS
public static final MediaType XLS
Microsoft Excel
-
DOC
public static final MediaType DOC
Microsoft Word
-
PPT
public static final MediaType PPT
Microsoft PowerPoint
-
PUB
public static final MediaType PUB
Microsoft Publisher
-
VSD
public static final MediaType VSD
Microsoft Visio
-
WPS
public static final MediaType WPS
Microsoft Works
-
XLR
public static final MediaType XLR
Microsoft Works Spreadsheet 7.0
-
MSG
public static final MediaType MSG
Microsoft Outlook
-
MPP
public static final MediaType MPP
Microsoft Project
-
SDC
public static final MediaType SDC
StarOffice Calc
-
SDA
public static final MediaType SDA
StarOffice Draw
-
SDD
public static final MediaType SDD
StarOffice Impress
-
SDW
public static final MediaType SDW
StarOffice Writer
-
SLDWORKS
public static final MediaType SLDWORKS
SolidWorks CAD file
-
ESRI_LAYER
public static final MediaType ESRI_LAYER
-
DGN_8
public static final MediaType DGN_8
-
-
Method Detail
-
detect
public static MediaType detect(Set<String> names)
Deprecated.Usedetect(Set, DirectoryEntry)
and pass the root entry of the filesystem whose type is to be detected, as a second argument.Internal detection of the specific kind of OLE2 document, based on the names of the top level streams within the file.
-
detect
public static MediaType detect(Set<String> anyCaseNames, org.apache.poi.poifs.filesystem.DirectoryEntry root)
Internal detection of the specific kind of OLE2 document, based on the names of the top-level streams within the file. In some cases the detection may need access to the rootDirectoryEntry
of that file for best results. The entry can be given as a second, optional argument. Following 2.6.1 of MS-CFB , The detection is performed on case insensitive entry names.- Parameters:
anyCaseNames
-root
-- Returns:
-
setMarkLimit
public void setMarkLimit(int markLimit)
If a TikaInputStream is passed in todetect(InputStream, Metadata)
, and there is not an underlying file, this detector will spool up tomarkLimit
to disk. If the stream was read in entirety (e.g. the spooled file is not truncated), this detector will open the file with POI and perform detection. If the spooled file is truncated, the detector will returnOLE
(orMediaType.OCTET_STREAM
if there's no OLE header).As of Tika 1.21, this detector respects the legacy behavior of not performing detection on a non-TikaInputStream.
- Parameters:
markLimit
-
-
detect
public MediaType detect(InputStream input, Metadata metadata) throws IOException
Description copied from interface:Detector
Detects the content type of the given input document. Returnsapplication/octet-stream
if the type of the document can not be detected.If the document input stream is not available, then the first argument may be
null
. Otherwise the detector may read bytes from the start of the stream to help in type detection. The given stream is guaranteed to support themark feature
and the detector is expected tomark
the stream before reading any bytes from it, and toreset
the stream before returning. The stream must not be closed by the detector.The given input metadata is only read, not modified, by the detector.
- Specified by:
detect
in interfaceDetector
- Parameters:
input
- document input stream, ornull
metadata
- input metadata for the document- Returns:
- detected media type, or
application/octet-stream
- Throws:
IOException
- if the document input stream could not be read
-
-