Skip to content
braces157Public

About

A local DOCX to LaTeX workspace with Spring Boot, React, shadcn/ui, Pandoc, and PDF previews.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

doc2TeX

Your words. Ready for their next chapter.
A local workspace for turning Word documents into editable LaTeX.

Windows and Linux CI MIT license Java 21 or newer Spring Boot 4.1 React 19

Get started · Development & API · Conversion test report · Contribute

The doc2TeX workspace with a converted research document and PDF preview

From DOCX to a draft you can own

Upload a document, choose Article or Report, and edit the resulting LaTeX. Build a PDF when you're ready, then take the source, images, and required fonts with you in one ZIP.

  • Structure that stays useful. Headings, lists, tables, links, footnotes, images, and native Word equations convert through Pandoc.
  • Original page settings. New conversions detect page size, landscape orientation, and all four margins. Choose custom settings when needed; the review explains unsupported layouts and fallbacks.
  • Optional local AI layout. PP-DocLayoutV3 helps recover unstyled headings and supported two-column layouts while keeping the original text and equations editable. The review records applied changes and fallbacks. See AI setup and limits.
  • An editor and PDF viewer together. Format selected text, insert headings/lists/equations, complete common commands, and navigate a document outline. Expand the editor and build a PDF from the source toolbar. See the source editing guide.
  • Pick up unfinished edits. Recover browser-local drafts after reopening a document, and retry source loading without risking a blank overwrite.
  • Review before you trust. Source feature counts and warnings call out tracked changes, merged cells, headers, charts, captions, and compiler problems.
  • Multilingual exports. Conditional Noto fonts cover the tested Latin, Vietnamese, Greek, Cyrillic, Thai, Chinese, Japanese, and Arabic samples. Font licenses travel with the export.
  • A quiet local workspace. Documents and conversion history stay on disk. A bounded queue handles conversions in the background, with history restored after restart.
  • A considered interface. React, TypeScript, shadcn/Radix, keyboard controls, responsive layouts, and a PDF.js canvas viewer.
See the conversion review

Review panel showing source features and explicit conversion findings

Screenshots use synthetic documents from the checked-in test corpus.

Quick start

Install JDK 21+, Node.js 24 LTS, and Git. The Maven Wrapper is included. Allow internet access for dependency setup and the first PDF compilation.

git clone https://github.com/braces157/doc2tex.git
cd doc2tex

Windows / PowerShell

powershell -NoProfile -ExecutionPolicy Bypass -File scripts/setup-tools.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/start.ps1

Linux x86-64 / macOS Intel or Apple Silicon

bash scripts/setup-tools.sh
bash scripts/start.sh

Open 127.0.0.1:8080. Try Explore with a sample document, or upload a .docx up to 20 MB. Stop the server with Ctrl+C.

Setup downloads checksum-verified Pandoc 3.12.1, Tectonic 0.17.0, and pinned Noto fonts into .tools/. Tectonic fetches TeX packages on the first PDF build; later builds use its cache. Conversion does not require a PDF build. macOS setup is provided, while automated CI covers Windows and Linux.

If your ZIP contains fonts/, select XeLaTeX when opening it in Overleaf or another LaTeX editor.

Tested on difficult documents

The regression corpus includes real DOCX files with native math, merged tables, multilingual text, revisions, and long tables. CI installs the actual converters and runs the PDF suite on Java 21 on both Windows and Linux; it fails if any tests are skipped.

Fixture What it exercises
Research methods Fraction, radical, matrix, footnote, nested lists, merged cells, embedded image
Multilingual notes Eight language samples, Unicode source, conditional fonts, missing-glyph checks
Edited operations Accepted/deleted revisions, headers/footers, text box, chart, comments
Observation register 40 sections, 90-row table, repeated headers, final-page checkpoint

See the measured results, visual verification, and remaining limits. PDF compilation alone does not prove a faithful conversion.

Scope and limits

This is a single-user local application. It binds to loopback by default and checks local hosts/origins. It does not provide accounts, an OS worker sandbox, or a public upload service. See the security model before changing deployment assumptions.

DOCX is the supported input. PDF, scanned documents, legacy .doc, and Google Docs links are not supported. Conversion preserves structure; exact Word pagination, editable charts, headers/footers, comments, complex tables, bidirectional layout, and unusual scripts can require manual work. Tracked changes are accepted. Review the generated source and PDF before sharing them.

Build and develop

npm --prefix frontend ci
npm --prefix frontend run lint
npm --prefix frontend run build
./mvnw verify -Ddoc2tex.test-pdf=true
java -jar target/doc2tex-0.1.0.jar

On Windows use ./mvnw.cmd verify '-Ddoc2tex.test-pdf=true'. The full suite needs the setup tools and fonts. For a fast backend run without PDF compilation, omit the property.

The packaged JAR serves the built frontend. For hot reload, run ./mvnw spring-boot:run and npm --prefix frontend run dev in separate terminals, then open port 5173.

frontend/                         React workspace and shadcn components
src/main/java/dev/doc2tex/         API, queue, validation, converter workers
src/test/resources/corpus/         Synthetic DOCX regression fixtures
scripts/                          Tool setup and corpus verification
logs and originals live in .data/ (Git-ignored)
downloaded tools live in .tools/  (Git-ignored)

Read the development guide for API routes, settings, persistence, and verification commands. Contributions are welcome; start with CONTRIBUTING.md.

For proposed features, priorities, and implementation tasks for future agents, see the customer-focused roadmap.

License

Original project code is MIT licensed. Dependencies, external converters, and fonts retain their own licenses; see third-party notices.

About

A local DOCX to LaTeX workspace with Spring Boot, React, shadcn/ui, Pandoc, and PDF previews.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages