The short version

An .odt is a zip. Inside it, content.xml is the document and a separate block of style definitions says which parts of it are bold. Reading one properly means following that indirection rather than pulling the text out and hoping.

Drop the file and the converted document is shown to you before any PDF exists, so you can see what came through. Then choose the page and convert.

OpenDocument is the format LibreOffice, OpenOffice and a good many government departments write by default, and it is a genuinely good one: open, documented, and made of files you can look at. That last part is what makes converting it feasible in a browser.

What is actually in an .odt

Rename one to .zip and open it. There is no mystery and no proprietary blob: a handful of XML files and a folder of pictures.

Inside the archiveThe files that make a document
  • mimetype, first and uncompressedwhat it is
  • content.xmlthe whole document
  • styles.xmlpage setup, named styles
  • Pictures/every image, as it was
An .odt, unzippedFive files, one of which is the document
Inside the .odt, which is a zipmimetypesays what it iscontent.xmlthe documentstyles.xmlpage and named stylesmeta.xmlauthor, datesPictures/the imagesWhat comes out
content.xml holds the text, the headings, the lists and the tables, and points at styles for everything about how they look. Pictures are stored whole, which is why they come through unchanged rather than re-encoded.

Compare this with the formats that came before it and the difference is the point of the thing. A document you can unzip is a document you can still read in twenty years, with or without the program that wrote it.

Why bold is the hard part

Structure in OpenDocument is easy to read because it is stated outright. A heading is a text:h with its level on it. A list is a text:list. A table is a table:table with rows and cells. Nothing has to be guessed.

Formatting is the opposite. A run of bold text is a span that names a style, and the style is defined somewhere else in the file entirely.

One word, two placesWhere bold actually lives
In the body<text:span text:style-name="T3"> urgent</text:span>Nothing here says bold. It says T3.Further up the same file<style:style style:name="T3"> fo:font-weight="bold"And this is where it does.
The body says this run uses style T3 and nothing more. Somewhere above it, T3 is declared as bold. A converter that reads only the body finds no formatting at all, which is why so many quick conversions come out as flat text.

Styles also inherit, so a style can say nothing about weight and take it from its parent. Resolving that chain is what turns a document into something worth reading, and it is also how a paragraph that quietly inherits from Heading 2 is recognised as a heading rather than a paragraph in a larger font.

What comes through, and what does not

Comes through

Headings with their levels, so the outline is intact.

Bold, italic, underline, strikethrough, superscript and subscript.

Bulleted and numbered lists, nested, with the right kind of marker.

Tables with header rows and merged cells across columns.

Paragraph alignment, links, and images at the size the document gives them.

Does not

Page geometry from the document. You choose the page here instead.

Charts and embedded spreadsheets, which are documents rather than pictures.

Comments, footnotes and tracked change markup, each reported when found.

Exact font matching, unless the document uses a font this has.

Text boxes and shapes positioned on the page.

The honest summary is that this converts the document rather than photographing the page. For a report, a letter, a manuscript or a set of minutes, that is what you want and the result is a clean, searchable PDF. For a poster laid out with text boxes, it is not.

Text
Stays text

Searchable and selectable, never an image.

Images
Placed whole

Pulled out of the zip as they were stored.

Preview
Before the button

You see the reading before the PDF exists.

Footnotes, comments and the text that is not text

An OpenDocument paragraph can contain things that are not part of the sentence: a footnote, a comment somebody left, a range of tracked changes. All three sit inside the paragraph in the file, and all three carry paragraphs of their own.

The bug this creates
A converter that treats every paragraph as a new block will start one when it reaches the footnote, and the sentence it was halfway through disappears. The symptom is a document that is mostly right with the odd line truncated, which is much worse than a document that is obviously wrong, because nobody notices until it matters.

Here those are skipped as a unit, the sentence around them is left whole, and the fact that they were dropped is reported rather than hidden. If the footnotes matter, put them in the body before converting.

When to use LibreOffice instead

This is worth saying plainly, because a tool that pretends it is always the answer is not useful. If LibreOffice is already installed, File then Export as PDF gives you a page that matches the document exactly, with its own margins, its own fonts and its own headers. That is the right tool for anything where the layout has been worked on.

This one is for the times that is not available or not worth it.

1

You do not have a word processor

A borrowed machine, a locked-down work laptop, a phone, a Chromebook. Installing an office suite to convert one file is a poor trade.

2

The document came from somewhere else

Somebody sent an .odt and you need a PDF to sign, send on or print. Opening it in an editor risks changing it.

3

You want the text rather than the page

A clean, searchable PDF with the structure intact, at whatever page size suits, rather than a reproduction of the original layout.

4

The file should not leave the machine

A draft, a contract, a manuscript. This runs in the browser, so it does not.

Why this runs in your browser

Word processor documents are the most personal files most people have: letters, applications, medical notes, manuscripts, anything with a name and address in it. Uploading one to have its format changed is a bad habit, and it is not a necessary one, because unzipping a file and reading XML is something your browser is extremely good at.

The file is opened in memory, the document is laid out with real fonts, and the result is checked by reopening it with the same engine before it is handed back as a download. Nothing is transmitted and nothing is stored.

The tool is right above

Drop an .odt, look at how it read the document, and convert.

Jump to the tool

Common questions

What comes through, what does not, and when LibreOffice is the better answer.

01Does it need LibreOffice or OpenOffice installed?

No. The .odt is opened and read in your browser. There is no word processor involved at either end, which is the point: it works on a machine that has never had one, and on a phone.

02Will the PDF look exactly like it does in LibreOffice?

Close, but not identical, and it would be dishonest to claim otherwise. Headings, paragraphs, bold and italic, lists, tables, alignment and images all come through. Page geometry is set by you here rather than taken from the document, and anything that depends on a font you have and the reader does not will be set in the font this uses. For a document where the layout is the point, LibreOffice's own export is the better tool and takes one menu.

03What happens to images?

Pictures stored inside the file are pulled out and placed at the width the document gives them. Charts and embedded spreadsheets are different: those are whole documents inside the file rather than pictures, and they are left out and reported rather than drawn wrong.

04Are comments and tracked changes included?

No. Comments are dropped, which is almost always what you want in a PDF, and tracked changes are shown as the text stands rather than as markup. Both are reported so you know it happened.

05Can it open .ods or .odp?

No, and it says which one you gave it rather than failing vaguely. A spreadsheet and a presentation are different documents with different layouts; a page of text is not the right shape for either.

06What about .fodt, the flat one?

That works. A .fodt is the same document written as one XML file with no zip around it, and it is read the same way.

07Does anything leave my machine?

No. The file is unzipped, read, laid out and saved in the browser, and the finished PDF is checked by reopening it before you get it. Nothing is uploaded.

08Why is my heading not a heading?

Because the document does not say it is one. A line made big and bold by hand looks like a heading and is a paragraph as far as the file is concerned. Apply the Heading 1 style in the word processor and it comes through as a heading, with the outline to match.