Faithful to the last glyph
Fonts, kerning, rotation, vectors, dashes, gradients, blend modes, clipping and images, JBIG2 and JPEG 2000 included. EPUB output is validated with epubcheck.
Jexter reads a PDF into one clean model and writes it back out as PDF, EPUB, HTML, SVG, Markdown or DocTags. The result looks exactly like the original, and its structure comes with it.
Jexter normalizes any PDF into the Open Canonical Document (OCD): one model where each page is stored in paint order. Every output is a projection of that model, so they all agree.
In
OCD
Open Canonical Document
Faithful replicas
look exactly like the source
Reflowed for reading
adapt to any screen
Text for AI
clean and in reading order, for LLM and RAG
The model itself
lossless, a valid EPUB that reopens as OCD
Rendering first, structure second. The look of the page may never regress; reading order, headings and paragraphs are recovered on top of it, by reference, without moving a single pixel.
Fonts, kerning, rotation, vectors, dashes, gradients, blend modes, clipping and images, JBIG2 and JPEG 2000 included. EPUB output is validated with epubcheck.
Glyph outlines are rebuilt into embeddable fonts with a reverse character map, so every output stays searchable. Corrupt embedded fonts are repaired instead of falling back to Arial.
Reading order by recursive XY-cut, headings and paragraphs by geometry; lists, tables, figures and captions from tagged PDF (PDF/UA). Alt text and language carry through to EPUB Accessibility 1.1.
Markdown and DocTags outputs feed LLM and RAG pipelines with clean, ordered text. An optional LLM pass refines the structure where geometry alone is not enough.
Is this PDF really redacted? Jexter finds the text still hiding under black boxes. Then it removes what lies under a zone (glyphs, vectors, image pixels) and exports only once the audit is clean.
The normalizer turns crude PDFs into clean ones with selectable text: one file, a whole folder, or a hot folder that converts whatever lands in it.
Prism, the Jexter web reader and workbench, opens in your browser from a local server: read, search and read aloud, reorganize and crop pages, redact, inspect the recovered structure, and export to every format. Your files stay on your machine.
java -cp "lib/*:target/classes" \
sugarcube.jexter.write.Conversion \
report.pdf report.epub
Same entry point for every target: the format follows the output’s extension.
sugarcloud.ch puts Jexter behind an HTTP API. Send a document, collect the result: every format the engine writes is available the day it ships. It succeeds 2up.ch, our PDF to EPUB conversion service since 2015.
ZigZag separates ink from paper under uneven light, shadows and yellowed paper. It won the best paper award at ACM DocEng 2024 and ranked first in the conference’s binarization competition.
No machine learning: two passes of local means over integral images, fast enough for a phone. Python, Java and JavaScript versions agree bit for bit. ZigZag is our third binarization algorithm, after FedLexBW (2016) and YinYang (2022).
This page was photographed in poor light. Drag the line to compare. To try your own, take a photo of a document (a page, a letter, a receipt) and drop it on the picture, or choose it below: it is cleaned on your device and never uploaded.
Sugarcube Information Technology is a small software company in Fribourg. We build engines that read documents, and the tools around them: conversion, structure recovery, image processing.
We also build to order: document pipelines, analysis tools and web applications, from the research paper to the software that runs every day. Past work includes vote results pulled out of thousands of printed tables, legal notices detected in newspaper pages, and ImaproFX, a framework for teaching image processing. We write Java, JavaScript and Python.
Jexter and ZigZag are free software under the GNU Affero General Public License v3. Use, modify and deploy them, including as an online service, as long as what you build on them is released under the same licence, with its source code.
For Jexter, a commercial licence lifts that obligation, so you can build it into a closed-source product or a proprietary service.
Tell us what you need to convert, clean up or understand.