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

为什么ChatGPT的打印到PDF功能有问题(以及用什么代替)

人们本能地会用 Ctrl+P → 另存为PDF 来保存ChatGPT对话。感觉免费,感觉理所当然。但结果根本没法用。我们来细数一下具体原因。

在chatgpt.com上按Ctrl+P实际得到什么

打开一段很长的ChatGPT对话,按Ctrl+P,选择“另存为PDF”,确认。最后落在磁盘上的PDF文件会有:

  1. 侧边栏。 ChatGPT的左侧导航会印在每一页上。文档的一半都是你自己的对话历史列表,而不是你想保存的聊天内容。
  2. 输入框。 “发送消息……”输入框会出现在每个分页底部。
  3. 长消息被截断。 比视口更长的消息会在右边缘被切掉。你只看到回复的前100个字符,然后就没了。
  4. 代码块在函数中间断开。 分页随意发生,一个30行的函数在第17行被切开。
  5. 数学公式显示为原始的$$ ... $$ 打印时不渲染KaTeX——LaTeX源码原样输出。
  6. 生成的图片有时损坏。 DALL-E图片以低分辨率打印;有时打印管线完全无法加载它们。
  7. 流式响应状态的残留。 如果你在回复还在流式输出时就打印,得到的就是半渲染的输出。
  8. 暗色模式浪费墨水。 如果你使用暗色模式,PDF会是白字灰黑底——能吃掉半盒打印机墨盒。

为什么Chrome无法修复这个问题

打印管线与页面内容无关。Chrome不知道聊天内容在某个特定的DOM子树中,不知道侧边栏是装饰性的,不知道输入框是UI控件。它只是捕获屏幕上的一切。

有时你可以用打印样式表(print stylesheets)来绕过最糟糕的部分——但ChatGPT并没有提供打印样式表,你需要通过用户脚本或扩展注入@media print { .sidebar { display: none } }规则。大多数用户不会这么做。

导出工具的做法有什么不同

三个要点:

  1. 读取对话数据,而不是渲染后的页面。 ChatGPT的网页客户端将对话存储为JS数据结构;导出工具读取的是这个结构,而不是DOM。
  2. 正确渲染数学公式。 在拼装PDF之前,LaTeX通过KaTeX转换为SVG。
  3. 把PDF当作文档来排版,而不是截图。 分页是内容感知的(不会拆分代码块),侧边栏/输入框/导航栏根本不会出现,因为它们从未被纳入输入,而且代码通过正确的渲染保持了语法高亮。

可行的流程

安装 ChatExport AI。打开ChatGPT对话。点击工具栏图标。选择PDF。点击导出。

结果:

  • 没有侧边栏。
  • 没有输入框。
  • 数学公式排版正常。
  • 代码高亮。
  • 分页合理。
  • 暗色模式可选,不浪费墨水。

点击次数和Ctrl+P一样多。输出是一份文档,而不是一张截图。

什么时候用Chrome的打印功能仍然没问题

静态博客文章。食谱。文章。任何不是作为动态Web应用构建的内容——Chrome的打印功能在这些场景下都工作良好。陷阱在于对动态Web应用使用同样的工具,而它并不好用。

什么时候PDF不是正确的导出格式

有时候你根本不需要PDF:

根据目的地选择,而不是默认选项。

分步替代方案

导出流程的详细版本:如何打印ChatGPT对话

相关

试用 ChatExport AI

免费 Chrome 扩展程序。无需账户。

添加到 Chrome — 免费