Package org.apache.poi.ooxml.extractor
Class POIXMLExtractorFactory
- java.lang.Object
-
- org.apache.poi.ooxml.extractor.POIXMLExtractorFactory
-
- All Implemented Interfaces:
ExtractorProvider
public final class POIXMLExtractorFactory extends Object implements ExtractorProvider
Figures out the correct POITextExtractor for your supplied document, and returns it.Note 1 - will fail for many file formats if the POI Scratchpad jar is not present on the runtime classpath
Note 2 - rather than using this, for most cases you would be better off switching to Apache Tika instead!
-
-
Constructor Summary
Constructors Constructor Description POIXMLExtractorFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccepts(FileMagic fm)POITextExtractorcreate(File f, String password)POITextExtractorcreate(InputStream inp, String password)POIXMLTextExtractorcreate(OPCPackage pkg)Tries to determine the actual type of file and produces a matching text-extractor for it.POITextExtractorcreate(DirectoryNode poifsDir, String password)POITextExtractorcreate(POIFSFileSystem fs)static BooleangetAllThreadsPreferEventExtractors()Should all threads prefer event based over usermodel based extractors? (usermodel extractors tend to be more accurate, but use more memory) Default is to use the thread level setting, which defaults to false.static booleangetPreferEventExtractor()Should this thread use event based extractors is available? Checks the all-threads one first, then thread specific.static booleangetThreadPrefersEventExtractors()Should this thread prefer event based over usermodel based extractors? (usermodel extractors tend to be more accurate, but use more memory) Default is false.static voidsetAllThreadsPreferEventExtractors(Boolean preferEventExtractors)Should all threads prefer event based over usermodel based extractors? If set, will take preference over the Thread level setting.static voidsetThreadPrefersEventExtractors(boolean preferEventExtractors)Should this thread prefer event based over usermodel based extractors? Will only be used if the All Threads setting is null.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.poi.extractor.ExtractorProvider
identifyEmbeddedResources
-
-
-
-
Method Detail
-
accepts
public boolean accepts(FileMagic fm)
- Specified by:
acceptsin interfaceExtractorProvider
-
getThreadPrefersEventExtractors
public static boolean getThreadPrefersEventExtractors()
Should this thread prefer event based over usermodel based extractors? (usermodel extractors tend to be more accurate, but use more memory) Default is false.
-
getAllThreadsPreferEventExtractors
public static Boolean getAllThreadsPreferEventExtractors()
Should all threads prefer event based over usermodel based extractors? (usermodel extractors tend to be more accurate, but use more memory) Default is to use the thread level setting, which defaults to false.
-
setThreadPrefersEventExtractors
public static void setThreadPrefersEventExtractors(boolean preferEventExtractors)
Should this thread prefer event based over usermodel based extractors? Will only be used if the All Threads setting is null.
-
setAllThreadsPreferEventExtractors
public static void setAllThreadsPreferEventExtractors(Boolean preferEventExtractors)
Should all threads prefer event based over usermodel based extractors? If set, will take preference over the Thread level setting.
-
getPreferEventExtractor
public static boolean getPreferEventExtractor()
Should this thread use event based extractors is available? Checks the all-threads one first, then thread specific.
-
create
public POITextExtractor create(File f, String password) throws IOException
- Specified by:
createin interfaceExtractorProvider- Throws:
IOException
-
create
public POITextExtractor create(InputStream inp, String password) throws IOException
- Specified by:
createin interfaceExtractorProvider- Throws:
IOException
-
create
public POIXMLTextExtractor create(OPCPackage pkg) throws IOException
Tries to determine the actual type of file and produces a matching text-extractor for it.- Parameters:
pkg- AnOPCPackage.- Returns:
- A
POIXMLTextExtractorfor the given file. - Throws:
IOException- If an error occurs while reading the fileIllegalArgumentException- If no matching file type could be found.
-
create
public POITextExtractor create(POIFSFileSystem fs) throws IOException
- Throws:
IOException
-
create
public POITextExtractor create(DirectoryNode poifsDir, String password) throws IOException
- Specified by:
createin interfaceExtractorProvider- Throws:
IOException
-
-