topdf.mdno extension · no watermark · no caps

Guide · Deep research to PDF

Turn a deep research report into a real document

ChatGPT, Gemini, and Claude can spend twenty minutes researching a topic and hand back three thousand words with headings, tables, and citations. None of that survives Cmd or Ctrl+P from the chat window. Here is where the actual Markdown lives in each tool, and what happens once you paste it somewhere built to typeset it.

The problem

What a browser print of the chat window actually gives you

Open a deep research thread and hit print, and you get the chat interface, not the report. The sidebar comes along. So does the regenerate button, the timestamp, sometimes an avatar. Headings inside the answer are usually styled about the same size as a heavy bold sentence, so a reader cannot tell a section break from an emphasized paragraph. A table gets clipped at whatever width the chat column happens to be. And every citation the model bothered to include renders as a bare link dropped into the middle of a paragraph, disconnected from any source list at the bottom.

None of that is a bug in ChatGPT, Gemini, or Claude. Chat interfaces are built for reading on screen, one turn at a time. A twenty-page report was never the shape they were designed to print.

What it should look like

The same report, typeset

This is a real excerpt, run through the actual rendering engine below, not a mockup. Change the Markdown and this changes with it.

One page of a report, typeset

Postgres for a small SaaS

Connection limits and pause-and-resume billing matter more than raw compute at this stage. Neon and Supabase both have a usable free tier; Railway has none, but it scales cleanly once a free tier runs out.1

Provider Free tier Max pooled connections Autoscaling
Neon 0.5 GB, 1 project 100 Yes
Supabase 500 MB, 2 projects 60 No
Railway None, usage-based 22 Yes

Footnotes

  1. Checked against each provider's own pricing page; providers change tiers often enough that this is a starting point, not a citation.

Where the Markdown hides

Get the report out of each assistant

Every assistant here writes GitHub-flavored Markdown under the hood. The only real question per tool is which button hands it to you cleanly. Menus move around, so treat these as where to look rather than exact clicks.

ChatGPT

Deep research finishes as a normal chat turn, long as it is. The copy button under the response grabs the whole thing, headings and tables included. If what lands in your clipboard is formatted HTML rather than Markdown, the paste cleanup below strips the leftover chrome for you.

Converting a single ChatGPT answer instead? →

Gemini

Deep Research mode adds an “Export to Docs” option once the report finishes, and that is the more reliable route for anything long: open the doc it creates and copy from there rather than the chat pane, since Docs tends to keep the outline and tables intact. A straight copy from the response works fine for shorter reports.

Converting a single Gemini answer instead? →

Claude

A long research response often lands in an artifact rather than the main reply, especially past a page or two, so check there first: artifacts carry their own copy control, separate from the chat. A plain response gets the usual copy button under it.

Converting a single Claude answer instead? →

What changes

What a 20-page report looks like once it is actually typeset

A heading is not the same weight as bold text anymore. It sets at a real display size in Fraunces, so the outline of a long report is visible at a glance instead of guessed at. Tables get real borders and column alignment instead of whatever the chat column could fit. Footnote-style citations, the kind ChatGPT and Claude both write as [^1] references when asked, resolve to an actual numbered list at the bottom of the document rather than a stray link mid-sentence.

Pagination comes from the browser’s own print engine: the size you set in the print dialog is the size the report breaks to, and turning on “Headers and footers” there adds page numbers, since topdf.md does not inject its own. A running header repeating the report title on every page, and the kind of per-section styling a client-facing report actually wants, are part of the paid document controls now in progress, not here yet. Today it is plain typesetting: real hierarchy, real tables, real footnotes, and that alone beats printing the chat window by a wide margin.

Try it

Paste a report, see it typeset

Below is a stand-in deep research report: a summary, a table, a recommendation, a footnote. Paste your own over it and the proof on the right updates as you type.

227 words · ≈1 page
Theme
Source · .md
Proof · PDF previewlive · 1:1