Class A_CmsTextExtractor

java.lang.Object
org.opencms.search.extractors.A_CmsTextExtractor
All Implemented Interfaces:
I_CmsTextExtractor
Direct Known Subclasses:
CmsExtractorHtml, CmsExtractorMsOfficeOLE2, CmsExtractorMsOfficeOOXML, CmsExtractorOpenOffice, CmsExtractorPdf, CmsExtractorRtf

public abstract class A_CmsTextExtractor extends Object implements I_CmsTextExtractor
Base utility class that allows extraction of the indexable "plain" text from a given document format.

Since:
6.0.0
  • Constructor Details

  • Method Details

    • extractText

      public I_CmsExtractionResult extractText(byte[] content) throws Exception
      Description copied from interface: I_CmsTextExtractor
      Extracts the text and meta information from the given binary document.

      The encoding of the input stream is either not required (the document type may have one common default encoding) or the extractor is able to divine the encoding from the provided binary array automatically.

      Delivers is the same result as calling I_CmsTextExtractor.extractText(byte[], String) when String == null.

      Specified by:
      extractText in interface I_CmsTextExtractor
      Parameters:
      content - the binary content of the document to extract the text from
      Returns:
      the extracted text
      Throws:
      Exception - if the text extration fails
      See Also:
    • extractText

      public I_CmsExtractionResult extractText(byte[] content, String encoding) throws Exception
      Description copied from interface: I_CmsTextExtractor
      Extracts the text and meta information from the given binary document, using the specified content encoding.

      The encoding is a hint for the text extractor, if the value given is null then the text extractor should try to figure out the encoding itself.

      Specified by:
      extractText in interface I_CmsTextExtractor
      Parameters:
      content - the binary content of the document to extract the text from
      encoding - the encoding to use
      Returns:
      the extracted text
      Throws:
      Exception - if the text extration fails
      See Also:
    • extractText

      Description copied from interface: I_CmsTextExtractor
      Extracts the text and meta information from the document on the input stream.

      The encoding of the input stream is either not required (the document type may have one common default encoding) or the extractor is able to divine the encoding from the provided input stream automatically.

      Delivers is the same result as calling I_CmsTextExtractor.extractText(InputStream, String) when String == null.

      Specified by:
      extractText in interface I_CmsTextExtractor
      Parameters:
      in - the input stream for the document to extract the text from
      Returns:
      the extracted text and meta information
      Throws:
      Exception - if the text extration fails
      See Also:
    • extractText

      Description copied from interface: I_CmsTextExtractor
      Extracts the text and meta information from the document on the input stream, using the specified content encoding.

      The encoding is a hint for the text extractor, if the value given is null then the text extractor should try to figure out the encoding itself.

      Specified by:
      extractText in interface I_CmsTextExtractor
      Parameters:
      in - the input stream for the document to extract the text from
      encoding - the encoding to use
      Returns:
      the extracted text and meta information
      Throws:
      Exception - if the text extration fails
      See Also:
    • combineContentItem

      protected void combineContentItem(String itemValue, String itemKey, StringBuffer content, Map<String,String> contentItems)
      Combines a meta information item extracted from the document with the main content buffer and also stores the individual information as item in the Map of content items.

      Parameters:
      itemValue - the value of the item to store
      itemKey - the key in the Map of content items
      content - a buffer where to append the content item
      contentItems - the Map of individual content items
    • extractText

      protected CmsExtractionResult extractText(InputStream in, org.apache.tika.parser.Parser parser) throws Exception
      Parses the given input stream with the provided parser and returns the result as a map of content items.

      Parameters:
      in - the input stream for the content to parse
      parser - the parser to use
      Returns:
      the result of the parsing as a map of content items
      Throws:
      Exception - in case something goes wrong
    • extractText

      protected CmsExtractionResult extractText(InputStream in, org.apache.tika.parser.Parser parser, boolean addMetaData) throws Exception
      Parses the given input stream with the provided parser and returns the result as a map of content items.

      Parameters:
      in - the input stream for the content to parse
      parser - the parser to use
      addMetaData - flag, indicating if extracted meta data should be added to the extraction result.
      Returns:
      the result of the parsing as a map of content items
      Throws:
      Exception - in case something goes wrong
    • removeControlChars

      protected String removeControlChars(String content)
      Removes "unwanted" control chars from the given content.

      Parameters:
      content - the content to remove the unwanted control chars from
      Returns:
      the content with the unwanted control chars removed