tdoc

A PDF, with no browser in it

Drop a .docx here. It is posted to a Cloudflare Worker, which opens the package, resolves the style cascade, paginates it and writes a PDF — no headless Chromium, no LibreOffice, no container. The whole renderer is TypeScript that runs where a Worker runs.

Drop a .docx
or click to choose one

Nothing is stored. The bytes are rendered in the request and the PDF comes straight back.

What the numbers mean

Characters dropped counts what the PDF's WinAnsi encoding could not represent. It is reported rather than hidden, because a renderer that quietly loses a character is worse than one that will not start.

Pictures drawn counts what was embedded. JPEG and PNG go in whole — the PDF filters are those formats — and GIF, BMP and EMF are refused by name and counted, so a missing seal is visible rather than silent.

The page count is the paginator's, and it is the same number the editor shows for the same document. That is the point: one layout decided both.

The PDF appears here.