Add your file
Choose or drop a .odt, .ods, or .odp file. You can paste the contents instead.
Pick an OpenDocument file and it is read directly in your browser: the text of every paragraph, heading and list item in document order, the text of each non-empty spreadsheet cell with its sheet, row and column, and for presentations the text and speaker notes of each slide. Spaces, tabs and line breaks encoded in the document are reproduced exactly, so copied or downloaded text keeps its spacing. The document type is read from the package's own mimetype entry rather than guessed from the file name, so a spreadsheet saved with an .odt extension is still reported as a spreadsheet, with both values shown and a warning. Another panel lists the document properties stored in meta.xml (title, subject, who created and last modified it, dates, generating application, keywords, editing cycles and custom properties) plus the word, page and character counts exactly as the authoring application declared them. Tracked deletions and comments are left out of the text and counted next to it, and images and embedded objects are counted so you can see what the plain text does not contain.
or drop a file here
Choose or drop a .odt, .ods, or .odp file. You can paste the contents instead.
The file is read and parsed in this browser — nothing is uploaded.
Look over what came back, then copy it, download it, or move on.
Want to know how files are handled? Read the privacy notice →
Choose the .odt file on this page and its text appears straight away in reading order, ready to copy or download as a .txt file. A structure table labels every entry as a heading with its outline level, a list item with its nesting depth, or an ordinary paragraph, and separate panels show the document properties and the list of files inside the package.
No. The ODT file is unzipped and parsed by code running in your browser tab, and neither the file nor the extracted text is sent anywhere. The text is also not saved to localStorage, sessionStorage or IndexedDB, so closing the tab discards it. Once the page has loaded, the extraction itself needs no network connection.
Open this page in Safari, Chrome or Firefox and pick the ODT file; its text is shown without installing LibreOffice or any other app. On iPhone and iPad the picker reads from the Files app or iCloud Drive, so save a mail attachment there first. The browser must support DecompressionStream, which Safari has from version 16.4; older versions show a decompression error.
The document was saved with a password, so its content is encrypted and this tool cannot read it; it does not crack or remove passwords. Open the file in LibreOffice with the password, use Save As with the save-with-password option switched off, and extract the text from that new copy instead.
A normal .odt is a ZIP package, and files with a broken ZIP structure, a checksum mismatch or a missing mimetype entry are refused, as are flat XML files such as .fodt. Common causes are an interrupted download, a .docx renamed to .odt, or an export saved as Flat XML. Download the file again or re-save it in LibreOffice as a regular ODF Text Document. ZIP64 archives are not supported either.
ODT, ODS and ODP files up to 25 MB (25,000,000 bytes) are accepted, and the on-screen preview shows up to 300,000 characters. Larger files are refused before anything is read. When the text is longer than the preview, the download holds the same shortened preview, and the structure, cell and slide tables list at most 5,000 rows each. Packages with more than 10,000 internal files are also refused, as is a document whose content.xml, meta.xml or META-INF/manifest.xml is larger than 100 MB once decompressed; images and other files in the package are not decompressed, so that limit does not apply to them.
Extracting its text here does not run macros, scripts or embedded objects, because only the document XML is read as text. That is not a verdict on the file itself: an ODT can still carry Basic macros or linked objects that may run when it is opened in an office suite, so be careful with files from unknown senders. This tool never declares a file safe.
The word, page and character counts are copied from meta.xml as the authoring application wrote them; they are labelled as reported and are never recalculated. If another program edited the file later, they may be out of date. The Extracted characters figure is different: it counts the characters this tool actually pulled out of the document.
It returns the value each cell displayed when the spreadsheet was last saved; formulas are neither shown nor recalculated. Every non-empty cell is listed with its sheet name, row and column, and a cell repeated across many columns appears once with its repeat count instead of being copied thousands of times. Number formats, charts and images are not extracted.
Yes: for an .odp file the slides table lists every slide in order with its number, its name when one is stored, the slide text and the speaker notes in their own column. The notes also appear in the main text output right after that slide's text. Pictures and embedded objects such as charts are counted but not turned into text, and audio or video clips on slides are neither counted nor extracted.
ODT is the OpenDocument text format used by LibreOffice and OpenOffice, while DOCX is Microsoft Word's Office Open XML format. Both are ZIP packages of XML but with different parts and tags, so this tool reads only ODT, ODS and ODP. A DOCX renamed to .odt is rejected because it has no OpenDocument mimetype entry.
After extraction, the download button on the text panel saves a UTF-8 .txt file named after your document. Line breaks, tabs and repeated spaces are kept exactly; formatting, images and layout are not. If the text is longer than 300,000 characters, the file is named with -text-preview.txt and contains only the first 300,000 characters.