Two routes exist. Browser printing with Ctrl+P works for one short conversation if you scroll to the top first. Converting conversations.json from your data export works for long conversations, bulk jobs, and anything where completeness matters.
Short answer
Two routes exist. Browser printing with Ctrl+P works for one short conversation if you scroll to the top first. Converting conversations.json from your data export works for long conversations, bulk jobs, and anything where completeness matters.
The choice between the two routes comes down to one question: does it matter if the PDF is missing part of the conversation?
Route one: browser print
Open the conversation, scroll to the very first message so everything loads, collapse the sidebar, then Ctrl+P or Cmd+P and choose Save as PDF. Enable background graphics, set margins to minimum, and drop the scale to around 80 percent if code is being clipped.
Immediate and free, with no export required. Suitable for a single short conversation you want right now.
Route two: convert the export
Request your archive from Settings, then Data Controls, then Export Data. Load conversations.json into ChatExports and generate PDFs.
Requires the one-time wait for OpenAI to build the archive. In return you get complete conversations, proper pagination, code that wraps, repeated speaker labels, and the ability to convert thousands of conversations at once.
Deciding
| Question | If yes |
|---|---|
| Is the conversation longer than about thirty exchanges? | Convert the export |
| Does it contain significant code? | Convert the export |
| Do you need more than two or three conversations? | Convert the export |
| Does it contain images? | Convert the export |
| Might its completeness be questioned later? | Convert the export |
| Is it one short chat you need immediately? | Browser print is fine |
The bias toward converting is not arbitrary. Browser printing fails silently, and silent failure is the worst property a backup method can have. You do not discover the problem until you need the document.
Why browser printing truncates
ChatGPT uses virtualised scrolling, keeping only a window of messages in the page to stay responsive. Messages outside that window are removed from the document entirely. Print serialises the current document, so unloaded messages cannot appear.
This is invisible in the print preview, which shows the truncated version without flagging it as truncated.
What conversion adds
Reading the export file sidesteps rendering entirely. Every message is in the JSON, including ones from branches created when you edited a prompt or regenerated a response, and the converter follows the active path to reconstruct the conversation as you actually saw it.
The generated PDF is then built for print rather than being a captured web page: pages break between messages, long code lines wrap, speaker labels repeat across page boundaries, and the original timestamps are preserved.
Conversion runs locally in your browser, so the export is never uploaded.
After conversion
For archives, keep one PDF per conversation rather than one combined file. Individual files are easier to search, share selectively, and organise. The converter names each from its conversation title automatically.
If the PDFs are going into long-term storage, consider generating Markdown alongside them. PDF is excellent as a fixed record and poor as a searchable, future-proof format; keeping both covers each need.
Frequently asked questions
Which route gives better quality PDFs?
Converting the export. It paginates between messages, wraps code, repeats speaker labels across pages, and cannot lose content to lazy loading.
Can I convert just one conversation from the export?
Yes. The converter presents your conversations as a searchable list, so you can pick one and export only that.
How long is the wait for the export?
Usually 5 to 30 minutes. OpenAI emails a download link that expires about 24 hours later.
Is anything uploaded during conversion?
No. The PDF is generated by JavaScript in your own browser, so the conversation never leaves your device.