ImagePDF.Tools

Turn Markdown into a Typeset PDF

Processing securely on your device, no data sent to any server
IMG

or drop files here

Headings, tables, highlighted code and equations come out as crisp, selectable pages. The typesetting happens in this tab, so drafts and private notes stay on your machine.

How it works

Write in plain text, print like a book.

Add your Markdown

Choose a .md, .markdown or .txt file, or flip to the text box and paste. A README, a set of lecture notes or a chapter draft all go in the same way.

Shape the page

Set paper, orientation, margins and text size. Serif type suits long prose, and the chapter toggle gives every # heading a page of its own.

Typeset and save

Press Convert to PDF. The very first run fetches the converter (about 60 MB) once per visit; after that a document is typeset in seconds and ready to save.

Use cases

Markdown is easy to write, awkward to share.

Most people you send a .md file to will see hash marks and asterisks. A PDF shows them the document you actually meant.

A README for non-developers

Clients and project managers rarely open .md files. A PDF of the README keeps the setup tables and command examples readable in any mail client or viewer.

Study notes full of formulas

Notes kept in Obsidian, Typora or a plain editor already use $...$ for equations. Here those turn into properly set fractions, roots and sums instead of raw symbols.

Code samples on paper

Workshop handouts and API guides print their fenced snippets on a shaded panel with coloured keywords, so learners can follow along without a laptop open.

Manuscript review copies

Writers drafting in Markdown get justified paragraphs, footnotes at the foot of the page and chapters that each open on a clean page, ready for a beta reader.

Release notes for the record

Attach a dated changelog to a ticket, audit file or customer email as a fixed document, rather than a repository link whose contents keep moving.

Answers copied from AI chats

Chat assistants reply in Markdown, which looks messy once pasted into an email. Drop the reply into the text box and get tidy headings and lists instead of stray asterisks.

From Markdown syntax to the printed page.

Two engines share the work. Pandoc reads your Markdown and works out its structure: which lines are headings, where a table starts, what belongs to a footnote. It then hands that structure to Typst, a modern typesetting system, which breaks paragraphs into justified lines, places footnotes at the bottom of the right page and paginates the whole thing.

Maths is where this pairing shines. You write the LaTeX you already know, say $\frac{1}{n}\sum x_i$, Pandoc rewrites it in Typst's own notation, and Typst sets it with a dedicated maths font. There is no image of an equation pasted in: the symbols are drawn as type and stay sharp at any zoom.

The table on the right is a quick reference for what each construct turns into. Anything not listed, such as raw HTML or diagram code, is covered in the questions below.

FeatureYou writeIn the PDF
Headings# Title, ## PartBold heading levels, listed as PDF bookmarks; # can open a new page
Emphasis**bold**, *italic*, ~~old~~Real bold, italic and struck-through type
Links[docs](https://example.com)Clickable links in the PDF
Tables| Item | Price |Ruled table, bold top row, colon alignment respected
Task lists- [x] DoneTicked and empty check boxes
Code```pythonMonospaced, colour-highlighted, on a grey panel
Footnotestext[^1]Numbered note at the foot of the same page
Maths$\sqrt{x}$ or $$...$$Typeset equations, inline or centred on their own line
Images![alt](data:image/png;base64,...)Embedded picture kept within the text column
Common questions

Questions answered.

Which kind of Markdown does this understand?
It reads GitHub-flavoured Markdown: pipe tables, task lists, strikethrough, bare web addresses as links and fenced code, plus footnotes and dollar-sign maths on top. A .txt file is read the same way, so text with no markup simply becomes paragraphs. As on GitHub, a single line break inside a paragraph is joined to the next line, so leave a blank line wherever a new paragraph should begin.
How do I write equations?
Wrap inline maths in single dollar signs, like $a^2 + b^2 = c^2$, and put display equations between double dollar signs on their own lines. The familiar LaTeX commands work (\frac, \sqrt, \sum, \alpha and friends): Pandoc translates them into Typst notation and Typst sets them in a proper maths typeface. If a price such as $5 is ever mistaken for maths, write it as \$5.
Why are some of my pictures not in the PDF?
The converter only ever sees the one file you give it. Pictures embedded in the Markdown as data addresses travel with it, but a path like ./images/chart.png points at a separate file it cannot open, and pictures on the web are not fetched. In both cases only the alt text from the square brackets is printed where the picture should be.
Do code blocks keep their syntax colours?
Yes, as long as the opening fence names the language, for example ```python or ```bash. The block is set in a monospaced font with coloured keywords and strings on a light grey panel. A fence without a language name still gets the panel and monospaced text, just without the colours.
What about HTML tags or Mermaid diagrams inside my Markdown?
Pages are laid out by Typst rather than a web browser, so raw HTML tags are skipped, although the text between them usually survives. Diagram blocks such as Mermaid or PlantUML are not drawn; they print as their source code. Export those diagrams as images and embed them if you need them in the PDF.
Can every chapter start on a fresh page?
Switch on "Start each # heading on a new page" and each top-level heading opens a new page, while ## and deeper headings stay in the flow. The break is skipped when a heading already sits at the top of a page, so you never get an empty page between chapters.
Will the PDF have bookmarks or a table of contents?
Your headings become entries in the bookmarks panel of most PDF readers, which makes long documents easy to navigate. A printed contents page is not generated, so add one by hand at the top of the Markdown if the document needs it.
Does my text get sent to a server?
No. Pandoc and Typst both run as WebAssembly in a background worker of this tab, and the finished PDF is assembled in memory on your device. The only network requests are for the converter itself and Typst’s standard typefaces, which come from a public CDN; your writing is not part of either request.