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 MediaTypeCOMP_OBJSome other kind of embedded document, in a CompObj container within another OLE2 documentstatic MediaTypeDGN_8static MediaTypeDOCMicrosoft Wordstatic MediaTypeDRM_ENCRYPTEDTIKA-3666 MSOffice or other file encrypted with DRM in an OLE containerstatic MediaTypeESRI_LAYERstatic MediaTypeGENERAL_EMBEDDEDGeneral embedded document type within an OLE2 containerstatic MediaTypeMPPMicrosoft Projectstatic MediaTypeMS_EQUATIONEquation embedded in Office docsstatic MediaTypeMS_GRAPH_CHARTGraph/Charts embedded in PowerPoint and Excelstatic MediaTypeMSGMicrosoft Outlookstatic StringOCX_NAMEstatic MediaTypeOLEThe OLE base file formatstatic MediaTypeOLE10_NATIVEAn OLE10 Native embedded document within another OLE2 documentstatic MediaTypeOOXML_PROTECTEDThe protected OOXML base file formatstatic MediaTypePPTMicrosoft PowerPointstatic MediaTypePUBMicrosoft Publisherstatic MediaTypeSDAStarOffice Drawstatic MediaTypeSDCStarOffice Calcstatic MediaTypeSDDStarOffice Impressstatic MediaTypeSDWStarOffice Writerstatic MediaTypeSLDWORKSSolidWorks CAD filestatic MediaTypeVSDMicrosoft Visiostatic MediaTypeWPSMicrosoft Worksstatic MediaTypeXLRMicrosoft Works Spreadsheet 7.0static MediaTypeXLSMicrosoft Excel
-
Constructor Summary
Constructors Constructor Description POIFSContainerDetector()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MediaTypedetect(InputStream input, Metadata metadata)Detects the content type of the given input document.static MediaTypedetect(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.voidsetMarkLimit(int markLimit)If a TikaInputStream is passed in todetect(InputStream, Metadata), and there is not an underlying file, this detector will spool up tomarkLimitto disk.static Set<String>tryOpenContainerOnTikaInputStream(InputStream input, Metadata metadata)
-
-
-
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> 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 rootDirectoryEntryof 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 tomarkLimitto 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_STREAMif 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:DetectorDetects the content type of the given input document. Returnsapplication/octet-streamif 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 featureand the detector is expected tomarkthe stream before reading any bytes from it, and toresetthe 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:
detectin interfaceDetector- Parameters:
input- document input stream, ornullmetadata- input metadata for the document- Returns:
- detected media type, or
application/octet-stream - Throws:
IOException- if the document input stream could not be read
-
tryOpenContainerOnTikaInputStream
public static Set<String> tryOpenContainerOnTikaInputStream(InputStream input, Metadata metadata)
-
-