TL;DR

Every major AI assistant now renders substantial outputs in a separate panel rather than inline in the conversation: ChatGPT's canvas, Claude's artifacts, Gemini's document view. The reason is sensible — a 2,000-word draft or a 300-line script is unreadable squeezed into a chat bubble.

The consequence is that saving the conversation doesn't save the output. Export the chat and you get the dialogue plus, at best, a reference to the artifact. The document itself — the thing you actually spent an hour iterating on — lives in a panel with its own render, its own scroll, and often its own version history that nothing in the export captures.

Two reliable ways out:

  • The panel is on screenConvert: Web to PDF, using Capture Element to grab the panel specifically, keeping text selectable.
  • You can copy or download the content → paste it into a .md, .txt, .json, or .csv file and convert with Convert: Anything to PDF, which renders Markdown with real formatting rather than raw syntax.

Both run entirely locally, which matters given how much of what goes through these tools is work product you shouldn't be uploading to a fourth party to convert.


Why the panel is a separate problem

When AI outputs were inline, "save the chat" was sufficient. The move to side panels split one artifact into two:

ConversationCanvas / artifact panel
ContainsPrompts, responses, reasoningThe actual deliverable
In a chat exportYesUsually not, or as a stub
Has its own scrollNoYes
Has version historyNoOften
Renders formattingBasicFull — headings, tables, syntax highlighting

The panel typically wins on everything that matters for the output and loses on being capturable. And because it's a separately-scrolling region inside a single-page application, the naive approaches fail in specific ways:

  • Cmd+P / Print to PDF captures the page's print stylesheet, which for a chat app usually means the conversation column and not the panel — or a layout collapse where the panel renders at some unrelated width.
  • A screenshot gets pixels. No selectable text, no copy-paste, no search, and if the panel scrolls beyond the viewport you're stitching images.
  • Copy-paste into a document works but loses structure to whatever your target app decides Markdown means, and quietly mangles code blocks.

Method 1: Capture Element on the panel

This is the fastest path when the content is already rendered and you want it exactly as displayed.

  1. Open the artifact panel and make it as wide as the layout allows. Most of these UIs let you expand the panel or enter a focused view — do that first; the PDF inherits the rendered width.
  2. Scroll through the entire panel to the bottom. These panels virtualize long content, meaning off-screen sections aren't in the DOM until you scroll them into view. Content that hasn't rendered can't be captured. This is the number one cause of a PDF that stops mid-document.
  3. Open Convert: Web to PDF and choose Capture Element. Select the panel container rather than the whole page. You get the document without the chat column, the composer, or the sidebar.
  4. Set the paper size to match the content. Wide tables or long code lines want landscape and A3 or Ledger. Prose is fine on A4 portrait.
  5. Export. The result is a real PDF: selectable text, working links, and a searchable text layer.

Don't use Article Mode here

Article Mode runs the Readability algorithm to isolate a prose article body from a web page. On a chat application it will confidently pick the wrong region — often the conversation instead of the panel — and it has a known tendency to drop <pre> blocks, which is fatal for anything containing code.

For any AI output containing code, stay in default mode or use Capture Element. We flag this repeatedly because it's the mistake that produces a tutorial with no tutorial in it.

Method 2: Export the content, then convert the file

Better when you want a clean typographic result rather than a screenshot of a UI, and when you'll want to edit later.

For prose or mixed documents: copy the Markdown out of the panel (most of these tools have a copy button that yields Markdown rather than rendered HTML), save it as draft.md, and convert. Convert: Anything to PDF renders Markdown properly — headings, lists, tables, emphasis, code blocks — instead of printing the asterisks.

For code: save as .txt with a sensible filename. You lose syntax highlighting; you keep every character exactly as written, which for code is the thing that matters.

For structured data: if the artifact is JSON or a table, save as .json or .csv. JSON converts with indentation and structure intact. CSV renders as a formatted table with header styling and aligned columns.

For a rendered HTML artifact: save the HTML to a local file and convert it. Note that if it referenced external stylesheets or fonts, those won't be there and it'll render unstyled — in that case Capture Element on the live render is the better route.

Why the file route is often better

  • It's editable. A .md file you can revise beats a PDF you can't.
  • It's diffable. Two versions of a .md file show you exactly what changed between iterations. Two PDFs don't.
  • It's clean. No UI chrome, no panel borders, no residual application styling.
  • It's portable. Markdown opens everywhere and will still open in a decade.

What to capture besides the output

If the artifact matters, three things are worth keeping alongside it:

The prompt that produced it. Six months later, "how did I get this?" is a real question, and the answer is in the conversation, not the panel. Capture both — the panel with Capture Element, the conversation as a separate PDF.

The date and the model. These outputs are not reproducible. The same prompt to the same product next month runs against a different model version and returns something else. Put the date and model in the filename:

2026-07-31_claude-artifact_q3-positioning-draft_v2.pdf
2026-07-31_chatgpt-canvas_migration-script_v1.pdf

The version, if you iterated. Several of these tools keep an internal version history in the panel. That history is not in any export and disappears with the session. If a specific earlier version matters, capture it while it's still reachable.

The privacy angle, briefly

A meaningful share of what goes through AI assistants is work product: draft strategy, unreleased copy, internal analysis, code from a private repository.

The reflex when you need a PDF is to find an online converter, upload the Markdown, and download the result. Consider what that does: takes a document you were careful enough about to keep in a work account, and hands it to a free service whose retention policy you haven't read, whose subprocessors you don't know, and whose business model is not obvious.

Local conversion removes that step entirely. Nothing uploads, no account exists, and you can verify it in ninety seconds — DevTools → Network, clear the log, run a conversion, watch nothing leave. We made the general case in why a PDF converter shouldn't upload your files and are online PDF converters safe in 2026.

There's a second reason local matters here specifically: these panels are behind a login. A URL-based converter fetches the page from its own servers, which have no session on your AI account, so it receives a sign-in screen. It's not a privacy trade-off — the approach simply doesn't function.

Method comparison

ApproachSelectable textKeeps formattingHandles codeEditable afterUploads anything
Capture Element → PDFYesYes, as renderedYes, in default modeNoNo
Export to .md → PDFYesYes, re-rendered cleanYesYes, the .mdNo
ScreenshotNoVisuallyAs an imageNoVaries
Cmd+P Print to PDFYesOften breaks on panelsUnreliableNoNo
Copy-paste into a docYesLossyFrequently mangledYesDepends on host
Online converterYesVariesVariesNoYes
Chat export featureVariesBasicSometimesNoNo — but often omits the panel

The last row is the one to internalize. Built-in chat export is fine for the conversation and routinely doesn't include the artifact, which is the part you wanted.

A workflow that holds up

For anything you'll need later:

  1. Finish iterating. Capturing a draft you're about to change wastes the effort.
  2. Export the source — Markdown, code, or data — to a file. This is your working copy.
  3. Convert that file to PDF for the fixed, shareable version.
  4. Capture Element on the panel if the rendered appearance matters — a formatted table, a diagram, a styled document.
  5. Capture the conversation separately so the prompt and context survive.
  6. Name everything with date, tool, and version.

Steps 2 and 3 give you something editable and something fixed. Steps 4 and 5 give you the appearance and the provenance. Two minutes total, and it turns an ephemeral session into a document set you can actually return to.

Frequently asked questions

Why doesn't exporting my AI chat include the canvas or artifact?

Because the panel is a separate render from the conversation. Chat exports serialize the message thread; the artifact lives in its own component with its own scroll and often its own version history, and typically appears in the export as a reference at most.

How do I save a ChatGPT canvas or Claude artifact as a PDF?

Two ways. Scroll the panel to the bottom so all content renders, then use Convert: Web to PDF's Capture Element to select the panel — you get a real PDF with selectable text. Or copy the content out as Markdown, save it as a .md file, and convert it with Convert: Anything to PDF for a cleaner typographic result.

Why does my captured PDF stop partway through the document?

The panel virtualizes long content: sections outside the viewport aren't in the DOM until scrolled into view, so they can't be captured. Scroll all the way to the bottom of the panel before converting.

Should I use Article Mode for AI outputs?

No. Article Mode isolates a prose article body using the Readability algorithm, which on a chat interface will often select the conversation instead of the panel, and it can drop <pre> blocks — so code disappears. Use default mode or Capture Element.

Is a screenshot good enough?

Only if you never need to search, quote, or copy from it. A screenshot is a flat image: no text layer, no working links, and multiple stitched captures for anything longer than your screen. A real PDF keeps the text selectable and searchable.

Can an online converter save my AI artifact?

No. Those services fetch a URL from their own servers, which aren't logged into your AI account, so they get a sign-in page rather than your content. And uploading work product to a third-party converter is a poor trade regardless.

How do I keep the code formatting intact?

Copy the code out and save it as a .txt file, then convert. You lose syntax colouring but preserve every character exactly. If you capture from the panel instead, stay in default mode — Article Mode is the thing most likely to strip code blocks.

Are these outputs reproducible if I lose them?

No. Model versions change, and the same prompt returns different output later. That's precisely why capturing at the time — with the date and model in the filename — is worth the two minutes.

Bottom line

The AI output you care about isn't in the chat log. It's in a panel that most export features ignore, that print-to-PDF mishandles, and that disappears with the session.

Scroll the panel fully, capture it with Capture Element for the rendered version, and export the source to a file for the editable version. Name both with the date and the model, because you won't be able to regenerate them.

Convert: Web to PDF handles the panel capture. Convert: Anything to PDF renders your Markdown, JSON, and CSV exports into proper documents. Both free, both entirely local, neither wants an account.

And when the work is filed: CineMan AI puts IMDb and Rotten Tomatoes ratings straight onto Netflix, Prime Video, and Disney+.