卷轴PDFLiving Scroll PDFLiving Scroll PDF卷轴PDF

macOS 菜单栏应用 · 需要 macOS 14 或更新版本A macOS menu-bar app · Requires macOS 14 or later

卷轴PDFLiving Scroll PDF把一整段滚动的窗口,收成一卷。Roll a whole scrolling window into one long record.

Roll a whole scrolling window into one long record.

把一整段滚动的窗口,收成一卷。

钉住一个窗口,框出区域,一边滚动一边逐帧截取,拼成一张 PNG 长图和一份 PDF。聊天记录、网页,从头到尾原样留档。

Pin a window, draw a region, and scroll. It captures frame by frame and stitches everything into one long PNG and a PDF — chat histories and web pages, kept exactly as they were, top to bottom.

手动模式永久免费:完整功能,PNG + PDF 导出,无水印,无需登录。

Manual mode is free forever: full features, PNG + PDF export, no watermark, no login.

快捷键 ⌃⌥S 框选截取 · 同名 .json 记录帧数与 SHA-256

Shortcut ⌃⌥S to frame a capture · a matching .json records frames and SHA-256

它怎么工作How it works

英文名里的 scroll 既是「卷轴」也是「滚动」:卷轴PDF 做的,就是边滚动边把内容收成一卷。

Scroll means both a rolled-up scroll and the act of scrolling. That is the whole idea: scroll through something, and roll it up into one record.

01/Window capture

按窗口截,不按屏幕截Captures the window, not the screen

通过 ScreenCaptureKit 只抓选中窗口自己的画面。压在上面的其他窗口、截取框和控制条本身,都不会进到图里。

ScreenCaptureKit grabs only the selected window's own pixels. Other windows on top, the capture frame and the control bar never end up in the image.

02/Zero mismatch

逐帧对位,只接新内容Frame by frame, only what is new

每一帧都算出内容移动了多少像素,只把新露出来的行接上去。顶部固定的标题栏、底部固定的输入框只出现一次。

For every frame it works out how far the content moved and appends only the newly revealed rows. Fixed headers and input boxes appear once, not in every segment.

03/Dual archive

一次存两份:PNG 与 PDFTwo files each time: PNG and PDF

PDF 默认是一整页长卷,也可以按 A4 比例分页方便打印。同名 .json 记录时间、帧数和两份文件的 SHA-256。

The PDF is one tall page by default, or A4-proportioned pages for printing. A matching .json records times, frame counts and the SHA-256 of both files.

零错位原则The zero-mismatch rule

一张长截图最怕的不是不好看,而是悄悄错了:某一段重复了一遍,或者某一段被跳过了,而你没发现。

The worst thing a long capture can do is not look bad — it is be quietly wrong: a passage repeated, or a passage skipped, without you noticing.

对不准的帧,直接不收Frames that cannot be placed are dropped

一帧如果无法精确对位,它会被丢弃,绝不硬贴。状态栏会提示你往回滚一点,滚回来就自动接上。

If a frame cannot be placed exactly, it is dropped — never force-pasted. The status bar asks you to scroll back a little, and it joins up again by itself.

没接回来的,会写在文件名上Incomplete captures say so

如果截取结束时还没接回来,输出文件名会带上「未完成」标记。输出永远不会在你不知情时重复或跳过内容。

If a capture ends before it joins up again, the file name is marked as partial. The output never silently duplicates or skips content.

关于 PDF:导出的是图像型 PDF(位图),里面的文字不能搜索、也不能选中复制。它适合原样留档和打印。

About the PDF: it is image-based (bitmap). Text inside it is not searchable or selectable. It is made for faithful archiving and printing.

两种模式Two modes

免费 · 永久Free · forever

手动模式Manual mode

你来滚,它来截。往回滚、停下、快慢不一都没关系。完整功能,PNG + PDF 导出,无水印,无需登录,没有产品层面的长度配额;特别长的截取受这台 Mac 的内存限制。

You scroll, it captures. Scrolling back, pausing, uneven speed — all fine. Full features, PNG + PDF export, no watermark, no login, and no product length quota; very long captures are limited by your Mac's memory.

付费 · 可试用 3 次Paid · 3 free trial runs

自动模式Auto mode

应用自己滚到底,滚不动了自动收尾。需要在系统设置里打开「辅助功能」权限。每次滚动前会确认滚轮落点下面就是目标窗口,被挡住会自动暂停。可免费完整试用 3 次,无需绑卡。

The app scrolls to the end by itself and wraps up when nothing moves anymore. It needs Accessibility permission. Before each scroll it checks that the target window is really under the pointer, and pauses if something covers it. Try it free for 3 full runs, no card required.

上手Getting started

  1. 打开应用,菜单栏出现一个卷轴图标。Open the app. A scroll icon appears in the menu bar.
  2. 第一次使用时,在「系统设置 › 隐私与安全性 › 屏幕与系统录音」里打开卷轴PDF,然后重开一次。On first use, enable it under System Settings › Privacy & Security › Screen & System Audio Recording, then reopen it.
  3. 按 ⌃⌥S,点选要截的窗口,在窗口里拖出区域(只框聊天内容最准;直接点一下就是整个窗口)。Press ⌃⌥S, click the window you want, and drag a region inside it (framing just the content works best; a plain click takes the whole window).
  4. 红色虚线框出现后,正常往下滚动那个窗口。When the red dashed frame appears, scroll that window downward as usual.
  5. 点「完成」或再按一次 ⌃⌥S。PDF 自动打开,文件存在桌面的「卷轴PDF」文件夹里。Click Done or press ⌃⌥S again. The PDF opens automatically; files are saved in a Living Scroll PDF folder on your Desktop.

目前只支持往下滚(从开头截到结尾)。界面有中文和英文,默认跟随系统语言。

Only downward scrolling is supported for now (from the start to the end). The interface is in Chinese and English and follows your system language.

为什么做它Why it exists

越来越多的工作发生在网页里的智能体和云端 bot 里,它们往往没有可导出的原始日志,只有一页聊天记录。一屏一屏截图再拼太累,复制粘贴又会丢掉图片和排版。卷轴PDF 把整段对话原样截成一份 PDF——留作创作过程的记录、项目交接,或者单纯存档。

More and more work happens inside web-based agents and cloud bots that have no exportable raw log — only a chat page. Screenshotting screen by screen is exhausting, and copy-paste loses images and layout. Living Scroll PDF captures the whole conversation as-is into a PDF: a record of a creative process, a project handoff, or simply an archive.

关于 SHA-256:它能证明文件与截取时生成的是同一份,前提是这串值另外存在别处(比如截完立刻发给对方)。和文件放在同一个文件夹里的 .json 本身证明不了什么;时间和窗口信息也没有签名认证。

On SHA-256: a hash shows a file is the one produced at capture time only if you keep the hash somewhere else (send it to someone right away, for example). The .json sitting next to the files proves nothing by itself, and timestamps and window details are not signed.

留在你的 Mac 上Stays on your Mac

所有截取和拼接都在本机完成,截图从不离开这台设备,应用里没有任何统计分析。

All capture and stitching happens on your Mac. Captures never leave the device, and the app contains no analytics.

阅读隐私政策Read the privacy policy

源码公开Source-available

源码以 PolyForm Noncommercial 1.0.0 协议公开在 GitHub:个人学习、研究等非商业用途可以使用、修改和分发,不允许商业使用。它不是 OSI 意义上的开源协议。

The source is on GitHub under PolyForm Noncommercial 1.0.0: you may use, modify and share it for personal, research and other noncommercial purposes; commercial use is not permitted. It is not an OSI-approved open-source license.

github.com/lululynne/living-scroll-pdf