Lllm2doc
Productivity · 6 min read · Updated April 2026

Batch convert many files at once

Drop up to 20 markdown files, pick a target format, get a single ZIP. Concurrency capped at three so the browser stays responsive — bigger batches just queue.

Key facts
  • File limit: 20 per batch. Files past the cap are dropped with a visible warning.
  • Accepted types: .md, .markdown, .txt.
  • Concurrency: 3 files in parallel via p-limit; the rest queue.
  • Output formats: DOCX, PDF, HTML, or Markdown. One format per batch.
  • Filenames: Preserved (intro.mdintro.docx). The ZIP archive itself gets a timestamp.
  • Error handling: One file’s failure doesn’t halt the batch; the bad one is flagged and skipped.
  • Speed: DOCX/HTML/MD are near-instant. PDF is CPU-bound — a 20-file PDF batch typically takes 30–60 seconds.
Step 01

Open /batch

Navigate to the Batch route from the homepage's More Formats menu, or go straight to /batch. Same browser session — no upload, no signup.

Step 02

Pick the output format

DOCX, PDF, HTML, or Markdown. Every file in the batch converts to the same format. Mixed-format batches aren't supported (yet) — run two passes if you need variety.

Step 03

Drop files

Drag a folder of .md / .markdown / .txt files onto the dropzone, or click to browse. Limit: 20 files per batch. Files past the cap are dropped with a warning, not silently truncated.

Step 04

Start & download

Hit Start. Three files convert in parallel via p-limit; the rest queue. Watch the progress strip — each file lands as soon as it's ready. Click Download ZIP when the run finishes.

When it pays off

The break-even is around three files — past that, batch is meaningfully faster than one-at-a-time.

Documentation set → PDF

Drop a folder of .md docs, output PDF, get a single ZIP for archival or print-on-demand.

Blog backlog → DOCX

Editor lives in Word? Convert a quarter's worth of drafts in one click and review with track-changes.

AI session archive

Save each ChatGPT/Claude session as a .md file during the week, batch-convert to DOCX every Friday.

Migration to a CMS

Going to a system that prefers HTML? Batch-convert your markdown corpus and keep the formatting consistent.

What to know before a big run

Filenames are preserved

Each output keeps the input's basename — `intro.md` becomes `intro.docx`. The ZIP archive itself gets a timestamped name so multiple runs don't collide.

Errors don't halt the batch

If one file fails (corrupt markdown, OOM, etc.), the batch continues with the rest. The failed file shows an error in the queue and is skipped from the ZIP.

PDF is the slowest

PDF generation runs html2canvas + jsPDF per file, which is CPU-bound. A 20-file PDF batch can take 30–60 seconds depending on doc size. DOCX and HTML are near-instant.

Browser tab stays open

Conversions are coordinated from the browser tab — closing it cancels in-flight work. PDF/HTML/MD render entirely on your machine; DOCX briefly POSTs to /api/convert-to-docx for Pandoc. Open in a new window if you need to keep working in the original.

Memory ceiling is real

Each file's intermediate canvas can claim 50–200 MB during PDF rendering. A 20-file PDF batch with large equations can stress devices under 8 GB RAM — split into two runs if you hit slowdowns.

Privacy matches single-file mode

PDF/HTML/MD batches stay entirely in your browser. DOCX batches POST each file's markdown to /api/convert-to-docx (Pandoc) — temp files only, deleted immediately, no logging. The ZIP itself is built in-memory and offered as a Blob, never persisted.

Why three at a time?

The batch processor uses p-limit(3) to cap parallelism. More than three concurrent rasterizations starves the main thread and the UI freezes; fewer is just slower. Three keeps the progress strip animating, the cancel button responsive, and CPUs warm but not pegged.

Run a batch

Drag a folder onto /batch and watch the progress strip do its work.

Open Batch Converter