Bengali for XTEINK

For XTEINK devices

Read Bengali EPUB books on your XTEINK e-ink pocket reader.

Clean up your Bengali EPUBs and get them ready for your XTEINK in four steps. Set up the font once; after that, just drop in books.

Loading the engine…

Your books never leave your computer. Everything runs in your browser. The only optional exception is the English-name lookup, which sends just a title and author name to Wikidata (you can switch it off).

1 Pick a font Once

Choose a bundled free font, or add your own. It stays on your computer and the page remembers it.

Or continue with a saved project:

2 Make the font files Once

Download the .cpfont files and transfer them into the XTEINK. Make them again only when the page says the SD-card font is out of date.

3 Clean up and convert Every book

We remove ads, fix the contents page, set tidy paragraph indents, and much more. Choose as many books as you want at a time. Your originals stay untouched.

Options

    4 Download and read Done

    Take each book on its own, or everything in one zip. Copy the books to your XTEINK and start reading.

      Log

      
        
      How it works

      The problem

      The XTEINK's firmware draws text one character at a time, left to right. Bengali does not work that way. Letters join into conjuncts (ক + ্ + ষ becomes ক্ষ), and some vowel signs are drawn before the letter they are typed after (ি) or on both sides of it (ো). On the device these come out as separate, misplaced pieces.

      The idea: do the hard part on your computer

      This page runs a text-shaping engine (HarfBuzz, compiled to WebAssembly) in your browser. It shapes every Bengali word with your chosen font and gets back the exact glyphs to draw, in the right order and position. Each glyph is then written into the EPUB as a private-use character (U+E000 plus the glyph number). The font files you copy to the SD card contain exactly those glyphs under exactly those codes, so the device only has to draw them one after another, left to right. The result looks like properly shaped Bengali.

      Some marks (such as vowel signs above or below a letter) need to sit slightly differently depending on the letter under them. The page makes extra "shifted" copies of those glyphs when needed.

      Step 1: pick a font

      • Three open-licence fonts are built in: Hind Siliguri, Baloo Da 2 and Noto Serif Bengali. They are downloaded once when you press "Set up font".
      • You can also add your own .ttf file. It never leaves your computer; the page remembers it in your browser's storage.
      • The page pre-builds a list of about 140,000 common Bengali words. This fixes the numbering of the glyphs from the start, so the same font always gives the same codes.
      • "Save font project" gives you a .zip with the font's state. Load it later, or on another computer, to carry on with the same numbering.

      Step 2: the font files for the SD card

      • Press "Make font files" to get .cpfont files, one for each text size you chose (10 to 30). Copy them into the fonts folder on the XTEINK SD card.
      • The "Font ready" line shows how many glyphs there are and a short font ID. The ID is how you can tell that the font on your SD card matches the one on this page.
      • Do this once. Make the files again only when the page tells you the SD-card font is out of date, which happens when a new book needed glyphs that were not in the font yet.
      • The font only ever grows by adding new codes at the end, so books you converted earlier keep working. Each font keeps its own set of files, so books converted for different fonts can sit side by side.

      Step 3: clean up and convert

      Choose one or more Bengali EPUBs (as many as you like) and one of three modes. Your originals are never changed; you get new copies.

      • Clean up only: gives a normal EPUB that works in any reader and needs no font. The file keeps its Bengali name.
      • Clean up and convert for the XTEINK: cleans the book, then shapes it for the device. The file is named "Title - Author" in English letters.
      • Convert for the XTEINK only: for books that are already clean.

      What the clean-up does:

      • Removes advertising and promo pages and "uploaded by" credit lines.
      • Writes the title and author in English in the book's details. If "Find the English title and author" is on (in Options), the page first looks the book up on Wikidata, and otherwise writes the Bengali names in English letters. You can edit both before downloading.
      • Rebuilds the table of contents with clear labels (Chapter 1, Part 1, Title Page and so on), and relabels an in-book contents page.
      • Removes fonts embedded in the book, so the device does not try to use them.
      • Sets one tidy layout: even line height, no stray margins, a small indent on normal paragraphs, and no indent on headings, centred lines, dates, short labels and similar.
      • Recognises poetry books and keeps verse lines together, centres poem titles, and does not indent them.
      • Repairs broken links and checks the finished book (valid files, English details, working contents links) before giving it to you.

      Options:

      • Left-align text: avoids wide gaps from justified text.
      • Keep the book's paragraph spacing: the device adds margins on top of the book's own, so spacing often looks too big; leave it off unless you like it.
      • Skip characters the font cannot draw: leaves out anything the font has no glyph for. If this is off, conversion stops and lists the characters so you can fix them.
      • Text repairs: lines in the form pattern => replacement applied before shaping. Useful for old encodings where a stray symbol stands for a Bengali letter.

      Step 4: download and read

      Download each book on its own, or everything in one .zip. Edit a file name first if you wish. Copy the EPUBs to the XTEINK along with the font files from step 2, then pick that font in the reader's font settings and open the book.

      Privacy

      Your books and fonts are processed entirely in this browser tab and are not uploaded anywhere. Two things use the internet: the bundled fonts are fetched from the jsDelivr CDN when you first set them up, and the optional English-name lookup sends only the book's title and author name to Wikidata. You can switch the lookup off in Options.

      Limits to know about

      • Bold and italic look like regular text.
      • Converted books cannot be searched, because the text is stored as glyph codes.
      • The device's library list and its table of contents still show boxes for Bengali, which is why file names and titles are in English.
      • Poetry stored in preformatted blocks is left as it is.
      • Keep your original EPUBs and your font project .zip. If the font files change, books converted earlier may need converting again.

      Credits

      Bundled fonts (Hind Siliguri, Baloo Da 2, Noto Serif Bengali) are under the SIL Open Font License 1.1. Built with Pyodide, harfbuzzjs, freetype-wasm, fontTools, JSZip, and the .cpfont converter from CrossPoint Reader (MIT).