How to open HWP files on Linux
Linux is where the HWP problem bites hardest: there is no vendor viewer to fall back on for most distributions, and the one importer that exists covers a version of the format that has not been current for a very long time. The good news is that the browser route works identically here, and for repeat work there are scriptable options.
Why LibreOffice disappoints here
LibreOffice does list HWP among its supported formats, which sends a lot of people down a dead end.
Its importer targets Hangul '97-era files only. Documents saved by later versions of Hancom Office use a different internal structure that the filter cannot parse, so the import fails or produces garbage even though the extension matches and the format is nominally supported.
In practice, almost every .hwp file you receive today is newer than that filter. If a document does open cleanly in LibreOffice, it is genuinely old.
What works
- Convert in the browser. Works on any distribution, any desktop environment, no packages to install and no dependency conflicts. Drop the file in on this page and get PDF, Word, Markdown, or plain text back.
- Ask for a different format. If the sender can export PDF or re-save as .hwpx, that removes the problem at the source. See HWP vs HWPX for why the newer format converts more reliably.
- Use a library if you are scripting. For repeat or automated work, parsing the file directly is the durable answer — more on that below.
For developers: parsing it yourself
If HWP files pass through your system regularly — a document pipeline, a research corpus, an internal tool — a browser converter is the wrong shape. You want a library.
This site is built on kordoc, an MIT-licensed Node library that parses both variants and emits Markdown, plain text, and layout SVG. It is on npm and works on Linux without native Korean dependencies, which is the usual sticking point. Our open-source licenses page lists everything we build on.
The two format variants need different handling underneath, which is worth knowing before you budget for the work:
- .hwpx is a ZIP archive of XML. You can inspect it with `unzip -l file.hwpx` and will see a `Contents` directory with one XML file per document section. This is the tractable case.
- .hwp is an OLE2 compound file — a binary container of streams. Reading it requires a compound-file reader plus knowledge of the record structure, which is why support is rarer and lags format changes.
Batch conversion from the command line
For a directory of documents, scripting against a library beats clicking through a web page. The rough shape in Node:
Read each file, call the parser, write the Markdown or text output next to it. Because the parse is pure computation with no network or display dependency, this runs fine on a headless server or in CI.
One practical caution from our own batch runs: converted output with images inlined is typically three to five times the size of the input. A directory of modest documents can produce a surprisingly large output tree, so strip or externalise images if you only need the text.
What about Wine or a virtual machine?
Running the Windows build of Hancom Office under Wine, or in a virtual machine, will work if you genuinely need to edit documents and return them as .hwp.
It is heavy for reading. If your goal is to get the content out, converting takes seconds and a VM takes an afternoon. Reserve this for the case where the original format has to survive a round trip.