LIT to PDF Converter
Convert MS Reader LIT ebooks to PDF in the browser — pure JavaScript. Parses LIT (Microsoft Reader) header + section table, extracts text, splits into chapters by headings, and renders to PDF using pdf-lib. Supports custom title, font size, page size, margins. 100% client-side.
About LIT to PDF Converter
Convert MS Reader LIT ebooks to PDF in the browser — pure JavaScript. Parses LIT (Microsoft Reader) header + section table, extracts text, splits into chapters by headings, and renders to PDF using pdf-lib. Supports custom title, font size, page size, margins. 100% client-side. Everything runs locally in your browser — your data never leaves your device.
How to use
- Enter your input in the tool above.
- Adjust any options to your preference.
- Use the Copy or Download buttons to save the result.
- Everything happens locally — your data never leaves your browser.
FAQ
What does this tool do?
Converts Microsoft Reader LIT ebooks to PDF in your browser. LIT is a Microsoft ebook format (discontinued in 2012, but old books still circulate). We parse the LIT header (8-byte signature 'ITOLITLS' + version + section count + section table), extract text from each text section (we skip LZX-compressed sections — see honesty clause below), split into chapters by heading patterns, and render to PDF using pdf-lib.
What is the LIT format?
LIT (Microsoft Reader) is an ebook format Microsoft released in 2000 and discontinued in 2012. The format is based on the Open Ebook Publication Structure (OEBPS) — sections containing HTML or plain text, optionally compressed with LZX (a Huffman+LZ77 variant). The LIT container starts with an 8-byte signature 'ITOLITLS', then a 4-byte version, a 4-byte header size, a 4-byte section count, and a section table (each entry: 4-byte offset + 4-byte size + 4-byte flags).
Can it extract text from all LIT files?
Honest answer: not from LZX-compressed sections. LZX is a complex compression format (used in Windows Imaging Format WIM files, and some CHM help files). A pure-JS LZX decoder is ~50KB+ and we don't bundle it. Most LIT files have an uncompressed section 0 (metadata XML) and may have uncompressed text sections (older LITs); we extract those. For LZX-only LITs, conversion fails with a clear error message. Use Calibre (desktop) to convert LZX-compressed LITs to PDF — it has a complete LZX implementation.
How does chapter detection work?
After extracting text from the LIT sections, we look for heading patterns: Markdown-style '# Chapter 1', 'Chapter 1', 'Part 1', or ALL-CAPS lines (5+ chars, no lowercase). Each heading starts a new chapter. If no headings are found, the entire text becomes one chapter. The output PDF has one page per chapter (with wrapping) plus chapter headings.
What extra features does this tool have compared to others?
10 extras: (1) Drag-drop file input. (2) LIT signature detection ('ITOLITLS'). (3) Section table parsing (offset, size, flags). (4) Compression detection (flag bit 0 = LZX compressed). (5) Stats — section count, text section count, compressed section count, chapter count, word count. (6) Custom title (defaults to LIT metadata title). (7) Adjustable font size (8-24pt). (8) Page size choice (US Letter or A4). (9) History (localStorage — last 10 conversions). (10) Shareable URL with options.
Is my LIT file uploaded anywhere?
No. All LIT parsing and PDF generation runs in your browser using pure JavaScript + pdf-lib. File contents never leave your device. Only file summaries (filename, section count, word count) are saved to local history.
Can I convert DRM-protected LIT files?
LIT files could be DRM-protected via Microsoft's 'Owner Exclusive' flag. Microsoft disabled the DRM activation servers in 2012, so old DRM-protected LITs can no longer be activated on new devices. If your LIT is DRM-protected, conversion will fail because we can't decrypt it. Most free LIT downloads (Project Gutenberg, Baen Free Library) are DRM-free.
Related tools
7Z Extractor
Inspect and extract files from 7z archives. Detects the 7z signature (0x37 0x7A 0xBC 0xAF 0x27 0x1C), parses the SignatureHeader and StartHeader, lists files from the archive metadata, and extracts STORE-method files when possible. Honest about LZMA compression limitations. 100% client-side.
APK Extractor
Extract and inspect Android APK files in the browser — pure JavaScript APK (ZIP) parser. View AndroidManifest.xml (binary XML detection), list DEX files, resources, and assets, extract individual files, detect app info (package name, version) from manifest. 100% client-side.
ARJ Extractor
Inspect ARJ archives. Detects the ARJ magic (0x60 0xEA), parses header structures, lists file entries with sizes and CRCs, and extracts STORE-method files when possible. Honest about ARJ compression limitations. 100% client-side.