LIMITED TIME50% OFF Pro Annual — $49.98$24.99/yr
29d:04h:28m:46s
CLAIM 50% OFF →
← All posts

Why ChatGPT's Print to PDF is broken (and what to use instead)

The instinctive way to save a ChatGPT conversation is Ctrl+P → Save as PDF. It feels free. It feels obvious. The result is unusable. Let’s walk through exactly why.

What you actually get with Ctrl+P on chatgpt.com

Open a long ChatGPT conversation, press Ctrl+P, choose “Save as PDF”, confirm. The PDF that lands on your disk has:

  1. The sidebar. ChatGPT’s left navigation prints on every single page. Half the document is your own conversation history list, not the chat you’re trying to save.
  2. The composer box. The “Send a message…” input renders at the bottom of every page break.
  3. Clipped long messages. Messages longer than the viewport get cut at the right margin. You get the first 100 characters of a response and then nothing.
  4. Code blocks split mid-function. Page breaks land arbitrarily, and a 30-line function gets sliced at line 17.
  5. Math as raw $$ ... $$. No KaTeX rendering at print time — the LaTeX source prints verbatim.
  6. Generated images sometimes broken. DALL-E images print at low resolution; sometimes the print pipeline fails to load them altogether.
  7. Streaming-state artefacts. If you printed while a response was still streaming, the half-rendered output is what you get.
  8. Dark-mode wasted ink. If you’re in dark mode, the PDF is white text on grey-black background — eats half a printer cartridge.

Why Chrome can’t fix this

The print pipeline is page-agnostic. Chrome doesn’t know that the chat content is in a particular DOM subtree, that the sidebar is decoration, that the composer is a UI control. It captures whatever’s on screen.

You can sometimes hack around the worst of it with print stylesheets — but ChatGPT doesn’t ship a print stylesheet, and you’d need to inject one via a userscript or extension to add @media print { .sidebar { display: none } } rules. Most users don’t.

What an export tool does differently

Three things:

  1. Reads the conversation data, not the rendered page. ChatGPT’s web client stores the conversation as a JS data structure; the export tool reads that, not the DOM.
  2. Renders math properly. LaTeX gets converted to SVG via KaTeX before the PDF is composed.
  3. Composes the PDF as a document, not a screenshot. Page breaks are content-aware (no splitting code blocks), the sidebar / composer / nav are absent because they were never in the input, and code keeps syntax highlighting through proper rendering.

The flow that works

Install ChatExport AI. Open the ChatGPT conversation. Click the toolbar icon. Pick PDF. Click Export.

The result:

  • No sidebar.
  • No composer.
  • Math typeset.
  • Code highlighted.
  • Page breaks page-aware.
  • Dark mode optional, doesn’t waste ink.

It takes the same number of clicks as Ctrl+P. The output is shaped like a document instead of a screenshot.

When Chrome’s Print is still fine

Static blog posts. Recipes. Articles. Anything that wasn’t built as a live web app — Chrome’s Print works fine for those. The trap is using the same tool for live web apps where it doesn’t work.

When PDF isn’t the right export

Sometimes you don’t want a PDF at all:

Pick by destination, not by default.

Step-by-step alternative

Long-form version of the export flow: How to print a ChatGPT conversation.

Try ChatExport AI

Free Chrome extension. No account.

Add to Chrome — It's Free