Skip to content
Server-sideDeleted in 30 minutes

Convert CHM to TXT

Plain TXT is a useful destination when the goal is search, indexing, quotation, or long-term text inspection rather than visual reproduction. A CHM help file has richer ingredients: HTML topics, headings, links, CSS, images, tables, and a navigation hierarchy. Converting it to TXT keeps the readable words while intentionally dropping most presentation. The route is therefore a text extraction aid, not a way to preserve a manual's appearance. It first reads an accessible CHM, extracts HTML, and converts the selected content to plain text. No DRM is removed or bypassed, and no guarantee is made that every topic, asset, or viewer-generated label will appear in one output file.

Use this without the search next time. Prathom Workbench puts Prathom's tools in your toolbar.

Add to Chrome — free
CHMTXT

Drop your CHM file here, or click to browse

Up to 50 MB. Deleted automatically after 30 minutes.

What it does

  • Produces searchable plain text from readable CHM content
  • Removes layout noise for indexing and quoting workflows
  • Retains useful words while discarding CSS and visual assets
  • No watermark and no sign-up

How to use CHM to TXT

  1. 1

    Add an accessible CHM

    Use a file you authored, own, or are authorized to convert. This service does not remove DRM, decrypt protected help content, or bypass licensing and account controls.

  2. 2

    Extract and simplify the content

    The server uses extract_chmLib to extract HTML from the CHM, then produces the selected TXT output by reading that HTML and stripping markup. The plain result is not a complete archive of every topic and resource.

  3. 3

    Search and proofread the text

    Search for headings, command names, warnings, and accented characters. Compare the output with important topics because tables, code indentation, links, and labels can lose meaning when visual structure is removed.

How it works

The job has two deliberately separate transformations. extract_chmLib extracts HTML from the CHM into temporary storage, and then the selected TXT output is produced from that HTML by removing markup and writing readable text. This makes the route useful for plain-text workflows without pretending that a TXT file can retain the original help viewer, stylesheet, image directory, or contents pane.

HTML contains clues about structure, but plain text has fewer ways to express them. A heading can become a line, a list can become indented text, and a paragraph can remain separate when its markup is conventional. A table may collapse into a sequence of cells, and a code sample can lose the spacing that distinguished one column from another. The exact result depends on how the topic was authored, not just on the CHM extension.

Why use plain text

TXT is easy to search, diff, archive, and pass between tools. It is a sensible target for an internal index, a command-line review, a quote extraction task, or an accessibility pipeline that wants to apply its own presentation. Removing CSS can also remove visual noise from a documentation set whose main value is the wording of warnings and commands.

That simplicity has a cost. Images, diagrams, colors, fonts, scripts, and most links have nowhere to go. The conversion does not promise that CSS or assets will be carried along, and it does not merge an entire help project into a perfectly labeled text book. If topic identity matters, add filenames or headings through a local editorial process and keep the original package beside the generated text.

Check the content that can disappear

Search for a warning, a command with punctuation, an accented name, and a phrase from the last topic. Inspect a table and a code listing separately. If the manual teaches a task through screenshots, the TXT output is incomplete by design; attach an authorized text description or refer readers back to the CHM. A successful download proves that text was written, not that every visual instruction or navigation relationship survived.

What a CHM is, and why plain text loses so much of it

Compiled HTML Help is a Microsoft format from 1997: a compressed archive of HTML pages plus an index, a table of contents, and a full-text search database, all built into one .chm file. It was how Windows software shipped its manuals for about fifteen years, and a great deal of documentation exists nowhere else.

The format is a small website with a navigation apparatus around it. Extracting text keeps the pages and discards the apparatus, and the apparatus was doing real work.

The table of contents is the first casualty. A CHM's structure is usually hierarchical — chapters containing topics containing sub-topics — and that hierarchy lives in a separate index file rather than in the pages. Flattened to text, the topics arrive in sequence with no indication of what was nested under what.

Cross-references go next. Help files are heavily interlinked, and "see the section on printing" was a link. In plain text it is a sentence pointing at nothing, and there is no way to tell from the output what it pointed to.

The pop-up definitions and context-sensitive topics that these files used extensively simply have no text equivalent at all.

Take the extraction when you need the words — searching for a phrase, feeding documentation to a text tool, preserving content from a file whose reader no longer runs. Where the structure matters, decompiling the CHM to its original HTML keeps it.

Old files, old encodings

CHM files predate the general adoption of Unicode, and the ones you are likely to encounter were written when Windows code pages were how non-English text got stored.

A file authored in Western Europe is probably Windows-1252; one from Central Europe, Windows-1250; Cyrillic, Windows-1251; Japanese, Shift-JIS. The encoding is sometimes declared inside the HTML and sometimes not, and when it is not, a converter has to guess.

The symptom of a wrong guess is recognizable. Accented characters arrive as pairs of odd symbols — é where é belongs — or as question marks and empty boxes. Pure ASCII text is unaffected, so an English manual usually comes through perfectly and a German one may not.

Check for it deliberately rather than waiting to notice: search the output for a word you know contains an accent, or for a currency symbol. Both are quick and both fail visibly.

If the text is mangled, the content is still recoverable — the bytes are intact and only their interpretation is wrong. A text editor that lets you reopen a file with a specified encoding will usually fix it in one step.

Examples

Indexing a discontinued desktop application guide

ledger-help.chm - 3.1 MB, 120 topics, screenshots and command reference
ledger-help.txt - plain extracted text, markup removed, images omitted

The TXT file is easier to feed into a search index and grep from a maintenance script. Screenshot-only instructions cannot survive as words, so the source CHM remains necessary when a technician needs the original visual context.

Quoting policy notes from a legacy archive

audit-policy.chm - 480 KB, short HTML topics, nested contents and links
audit-policy.txt - readable text for review, topic boundaries checked

Plain text makes line-oriented review and version comparison practical. The reviewer should still mark where one topic ends and another begins, because a flattened stream may no longer communicate the old contents hierarchy or cross-topic link targets.

Frequently asked questions

Does CHM to TXT extract every topic into one text file?

It extracts HTML content and produces the selected plain-text result, but the output should not be treated as a guaranteed complete export of every CHM topic. Help files can contain several documents, generated menus, hidden labels, and viewer metadata. Important archives need a comparison against the contents tree and a separate export plan if every topic must be indexed with its original title and order.

What happens to HTML formatting, CSS, images, and links?

TXT has no CSS, image, font, color, or hyperlink representation, so those parts are intentionally discarded or reduced to nearby text. Tables and code blocks may lose alignment, and an image-only instruction can become an empty gap. The conversion does not promise a visual or asset-preserving copy. Keep the CHM for diagrams and use the plain result for searching, quoting, and text-oriented processing.

Will this converter unlock a DRM-protected CHM?

No. It does not remove DRM, decrypt a protected package, bypass a vendor's license, or extract topics that the conversion process cannot read. A readable input is required. Use a file you created, own, or have permission to transform, and do not assume that changing the filename or putting the file in an archive changes its legal or technical access restrictions.