Cadmeo

Markdown to PDF Converter

Headings, lists and fenced code blocks are supported.

2
Headings
1
Paragraphs
2
List items
1
Code lines
Status

Edit the Markdown, then create the PDF.

The Markdown to PDF converter renders headings, paragraphs, lists and fenced code blocks into a paginated PDF. It supports a deliberate subset of Markdown rather than the full specification, and the page is explicit about where the line falls.

How it works

  • Headings: # through ### become 22pt, 17pt and 14pt bold, with space above each.
  • Lists: -, * , + and numbered items become bulleted, indented paragraphs.
  • Fenced code blocks between triple backticks are set in Courier and indented.
  • Inline **bold**, *italic*, `code` and [links](url) are stripped to plain text, with link URLs kept in parentheses.

Inline formatting is stripped rather than rendered because pdf-lib draws text with one font per call. Mixing bold inside a paragraph would need the line broken into runs, each measured and positioned separately, a layout engine rather than a converter.

Tables, images, block quotes and nested lists are not supported. Anything unrecognised is treated as a paragraph, so nothing is silently dropped.

Examples

A short document

Markdown

# Report

A paragraph with **bold** text.

## Findings

- First item
- Second item

Result

A PDF with a 22pt heading, a paragraph, a 17pt heading and two bulleted items

The **bold** markers are removed and the text set in the body font. The counts shown above the button confirm what was parsed before you generate.

A link

Markdown

See [the standard](https://example.com/spec).

Result

See the standard (https://example.com/spec).

PDF hyperlinks need annotation objects rather than text, so the URL is kept in parentheses, visible and copyable, if not clickable.

Frequently asked questions

Why is inline bold and italic stripped rather than rendered?

Because pdf-lib draws each text run with a single font. Rendering bold inside a paragraph means splitting the line into runs, measuring each separately and positioning them end to end, a line-layout engine rather than a converter. Headings still get the bold font, since a whole heading is one run.

Which Markdown features are supported?

Headings one to three, paragraphs, bulleted and numbered lists, and fenced code blocks. Tables, images, block quotes and nested lists are not. The counts shown above the button tell you what was parsed before you generate anything.

Are hyperlinks clickable in the PDF?

No. A clickable link needs a link annotation positioned over the text, which requires knowing exactly where the text landed. The URL is kept in parentheses instead, so the information survives even though the click does not.

What happens to Markdown it does not understand?

It is treated as a paragraph and rendered as written. Nothing is silently dropped, so an unsupported table appears as its raw pipe-delimited text rather than disappearing.