Built-in Text extractor plugins
| Name | MIME types | Description |
|---|---|---|
| AudioTextExtractor | audio/mpeg audio/x-ogg |
Reads the file’s own embedded ID3/audio tags (title, artist, album, and so on) using the entagged library; does not analyze the actual audio content. |
| AutoCadLinkListTextExtractor | image/vnd.dxf image/vnd.dwg |
Extracts the TEXT entities (labels/annotations) embedded in an AutoCAD drawing, using the external CADViewer LinkList tool (cadviewer.linklist configuration parameter). |
| AzureTextExtractor | image/tiff image/gif image/jpeg image/png |
OCR via Azure Cognitive Services’ Read API (cloud-based, requires Azure endpoint/key configuration). A cloud alternative to TesseractTextExtractor for the same image types. |
| EPUBTextExtractor | application/epub+zip | Extracts the plain text of an EPUB e-book’s chapters using epublib. |
| EmlTextExtractor | message/rfc822 | Extracts the headers of an EML mail (From, To, Cc, Date and Subject, one “Name: value” line each) followed by the body, preferring the plain text part over the HTML one. Attachments are skipped, except attached mails. |
| ExifTextExtractor | image/jpeg | Extracts EXIF/metadata tags (camera model, date, GPS, and so on) from a JPEG using the metadata-extractor library. Not OCR - it does not read any text visible in the image itself. |
| HTMLTextExtractor | text/html | Strips HTML markup and returns the page’s visible text, using Jsoup. |
| ImageOpenAITextExtractor | image/tiff image/gif image/jpeg image/png |
Sends the image to the configured OpenAI vision model and returns its response as Markdown. An AI-based alternative to TesseractTextExtractor/AzureTextExtractor for the same image types. |
| JsonTextExtractor | application/json | Extracts every value of a JSON document as a “path/to/field: value” line, so each value keeps its context. Escaped characters (\uXXXX) are decoded; a malformed file is indexed as raw text. |
| LibreOfficeTextExtractor | application/vnd.oasis.opendocument.text application/vnd.oasis.opendocument.text-web application/vnd.oasis.opendocument.text-template application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.presentation-template application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.spreadsheet-template application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.graphics-template application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.text-master application/vnd.sun.xml.writer application/vnd.sun.xml.calc application/vnd.sun.xml.impress application/vnd.sun.xml.draw application/vnd.sun.xml.writer.global application/vnd.sun.xml.calc.template application/vnd.sun.xml.impress.template application/vnd.sun.xml.draw.template application/vnd.sun.xml.writer.template |
Reads the document’s own content.xml directly via SAX parsing - OpenDocument and legacy OpenOffice.org files are ZIP archives of XML - without invoking LibreOffice itself. |
| MarkdownTextExtractor | text/markdown | Returns the raw Markdown source as plain text (no rendering). |
| MsExcelTextExtractor | application/vnd.ms-excel application/msexcel application/excel |
Extracts cell text from a legacy (.xls) Excel workbook using Apache POI (HSSF). |
| MsOffice2007TextExtractor | application/vnd.openxmlformats-officedocument.wordprocessingml.document application/vnd.openxmlformats-officedocument.wordprocessingml.template application/vnd.openxmlformats-officedocument.presentationml.presentation application/vnd.openxmlformats-officedocument.presentationml.template application/vnd.openxmlformats-officedocument.presentationml.slideshow application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.openxmlformats-officedocument.spreadsheetml.template application/vnd.ms-excel.sheet.macroEnabled.12 application/vnd.ms-excel.template.macroEnabled.12 |
Extracts text from modern (2007+) Word/PowerPoint/Excel documents, including macro-enabled workbooks, using Apache POI’s OOXML support. |
| MsOfficeOcrTextExtractor | application/msword application/vnd.openxmlformats-officedocument.wordprocessingml.document application/vnd.openxmlformats-officedocument.wordprocessingml.template application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation application/vnd.openxmlformats-officedocument.presentationml.template application/vnd.openxmlformats-officedocument.presentationml.slideshow application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.openxmlformats-officedocument.spreadsheetml.template application/vnd.ms-excel.sheet.macroEnabled.12 application/vnd.ms-excel.template.macroEnabled.12 |
Converts the document to PDF and OCRs every rendered page with Tesseract, ignoring any native text - useful for scanned or image-heavy Office documents, at the cost of speed. Covers the same Word/PowerPoint/Excel MIME types (legacy and 2007+) as MsWordTextExtractor, MsOffice2007TextExtractor, MsExcelTextExtractor, and MsPowerPointTextExtractor combined. |
| MsOutlookTextExtractor | application/vnd.ms-outlook | Extracts the subject, body, and attachment names of an Outlook message (.msg) using Apache POI (HSMF). |
| MsPowerPointTextExtractor | application/vnd.ms-powerpoint application/mspowerpoint application/powerpoint |
Extracts slide text from a legacy (.ppt) PowerPoint presentation using Apache POI (HSLF). |
| MsVisioTextExtractor | application/vnd.ms-visio.drawing | Converts the Visio drawing to PDF via LibreOffice, then delegates to whichever PDF text extractor is currently registered and active to extract its text. |
| MsWordTextExtractor | application/vnd.ms-word application/msword |
Extracts text from a legacy (.doc) Word document using Apache POI (HWPF). |
| NativeMsExcelTextExtractor | application/vnd.ms-excel application/msexcel application/excel |
Alternative to MsExcelTextExtractor using the external catdoc xls2csv command-line tool (system.catdoc.xls2csv configuration parameter) instead of Apache POI. |
| PdfLayerTextExtractor | application/pdf | Extracts only the PDF’s own text layer (PDFBox); no OCR fallback, so a scanned or image-only PDF returns no text. The lightest and fastest of the PDF extractors. |
| PdfNewTextExtractor | application/pdf | Same approach as PdfTextExtractor - text layer plus an OCR fallback (Tesseract, on the PDF’s embedded images) when there is no text layer or system.pdf.force.ocr is set - rewritten against the newer PDFBox loading API, with a simpler, Java-only image extraction step. |
| PdfOcrTextExtractor | application/pdf | Always OCRs every rendered page with Tesseract, ignoring any existing text layer. |
| PdfOpenAITextExtractor | application/pdf | Always sends every rendered page to the configured OpenAI vision model and returns Markdown, ignoring any existing text layer. |
| PdfRenderTextExtractor | application/pdf | Text layer plus OCR fallback like PdfTextExtractor/PdfNewTextExtractor, but renders each full page as a 300 DPI image for OCR instead of only extracting embedded image objects - catches more scanned/complex-layout cases, at the cost of being slower. |
| PdfTextExtractor | application/pdf | Text layer (PDFBox) plus an OCR fallback (Tesseract, on the PDF’s embedded images) when there is no text layer or system.pdf.force.ocr is set; can use the external pdfimages tool (system.pdfimages) instead of Java-based image extraction. |
| PlainTextExtractor | text/plain text/csv |
Returns the raw text content, decoded with the given (or UTF-8) encoding. |
| PngTextExtractor | image/png image/apng image/mng |
Reads the file’s own embedded tEXt metadata chunks (PNG/APNG/MNG binary chunk format). Not OCR - it does not read any visible text drawn in the image. |
| RTFTextExtractor | application/rtf text/rtf |
Extracts plain text from an RTF document using Java Swing’s RTFEditorKit. |
| RarTextExtractor | application/x-rar-compressed application/vnd.rar |
Same as ZipTextExtractor for RAR archives, both RAR4 and RAR5 (including solid archives): the path of every file and, below it, the text of the files that have an active text extractor, with the same limits. Encrypted entries are only indexed by name; when the file names themselves are encrypted, the extraction fails with “Encrypted RAR archive”. |
| SourceCodeTextExtractor | text/x-java text/x-python text/css text/x-sql application/x-php application/javascript application/x-shellscript |
Returns the raw source code as plain text. |
| TesseractTextExtractor | image/tiff image/gif image/jpeg image/png |
Local OCR via Tesseract (system.ocr configuration parameter); optionally retries at extra rotation angles (system.ocr.rotate) to improve results on rotated scans. |
| XMLTextExtractor | text/xml application/xml application/vnd.scribus |
Extracts the text content and attribute values of an XML document via SAX parsing; also handles Scribus project files, which are XML-based. |
| ZipTextExtractor | application/zip | Extracts the path of every file in the ZIP archive and, below it, the text of the files that have an active text extractor (PDF, Word, plain text, and so on). Nested archives, encrypted entries, images, audio and video are only indexed by name. To protect against oversized archives (zip bombs), at most 1000 entries are read, 20 MB uncompressed per entry and 200 MB in total, and the extracted text is capped at 10 MB; beyond those limits, only names are indexed. |