老实说,我反复研究过这个问题——在 Safari 里打印网页,有时候比写代码还让人头疼。页面明明加载正常,打印出来却要么缺内容、要么广告比正文还抢眼,甚至直接冒出好几页空白。其实根本原因不在于 Safari 本身不行,而是我们没掌握正确的“输出姿势”。下面这五个方法,基本能覆盖你遇到的所有场景,从一键直出到精细控制,全都有交代。

一、用 Safari 打印功能直接搞定
先讲最基础的方法——直接用 Safari 自带的打印功能。说白了,就是调用系统打印服务,把当前网页完整地送进打印机。这个方法最通用,也最省事。
操作上,先打开目标网页,等所有图像、脚本和延迟加载内容都显示完整了再操作。Mac 用户直接按 Command + P,iOS 或 iPadOS 用户则点底部工具栏的“分享”图标,再选“打印”。
调出打印预览窗口后,记得确认右侧边栏已经展开。如果没看见全部选项,点右上角的“显示详细信息”三角箭头就行。在“Safari”专属设置区,你可以按需勾选 “页眉和页脚”来显示网址与日期,或者打开 “背景图形”保留网页原本的配色和图片。
接着在“纸张大小”下拉菜单里选对的型号,“方向”选纵向或横向,“缩放”栏直接调数值或选“缩小以适合页面”。最后确认打印机就绪、设备选对了,点“打印”即可。
二、手动选区打印,只输出你要的那部分
很多时候,你其实不需要整页纸——只想把某段文字、某个表格或几张图打出来。这种场景下,手动选区打印就是最好的解法。
用鼠标或触控板精确选中目标内容,确保 边界无误、没有遗漏。Mac 上右键点击选区,iOS/iPadOS 上长按直到弹出操作菜单,然后选“共享”,再点“打印”。系统会自动把选中内容送进打印队列,预览窗口里还能调整边距和纸张方向。确认无误后点“打印”,输出即刻开始。
三、阅读器模式净化页面,告别广告和弹窗
有些网页广告密得像牛皮癣,布局混乱,还带浮动弹窗。这时候硬打印等于给自己添堵。Safari 的阅读器模式就是为了这种场景准备的——它会把导航栏、侧边栏、第三方脚本统统剥离,只保留主干文本和内嵌图像,打印出来干净得像教科书。
打开网页后,先看看地址栏左侧有没有 书本形状的图标。有就说明这页面支持阅读器模式。点一下图标进入简洁阅读视图,等正文、标题和图片完成重排加载。然后按 Command + P 调出打印面板,预览内容里所有干扰元素应该都消失了。打印设置里关掉“页眉和页脚”能让版面更清爽,但想保留来源网址的话也可以开着。最后点“打印”就行。
四、复制到文稿应用,自己排版再打印
如果遇到需要跨区域组合内容、插入注释、调整字体层级或统一行距的复杂需求,直接打印网页肯定不够用。这时候不如把内容搬到本地文档工具里——Pages、备忘录都行,能得到更自由的格式控制。
在 Safari 页面里按住 Command 键拖动鼠标,选中多个不连续区域后按 Command + C 复制。然后打开“文稿”或“备忘录”,新建空白文档并粘贴。在文档里统一设置字体大小、段前间距、首行缩进,必要时插入分页符确保章节独立。最后点“文件”→“打印”,启用“全部页面”覆盖完整文档,确认打印机连接正常后点“打印”。
五、开发者工具清掉 CSS 分页样式,根治空白页
最后这招有点技术含量,但效果立竿见影。有些网页通过 CSS 设置了 page-break-before、break-inside: avoid 等强制分页规则,导致打印时冒出莫名其妙的空白页,或者内容被拦腰切断。这时候直接在控制台里把这些规则干掉就行。
在 Safari 中打开目标网页,按 Command + Option + I 打开开发者工具(需要先在“偏好设置→高级”里启用开发菜单)。切换到“控制台”标签页,粘贴并执行这段代码:document.querySelectorAll('style, link[rel="stylesheet"]').forEach(s => s.remove());
紧接着再执行:Array.from(document.querySelectorAll('*')).forEach(el => { el.style.pageBreakInside = 'auto'; el.style.breakInside = 'auto'; if (getComputedStyle(el).overflowY === 'scroll' || getComputedStyle(el).overflowY === 'auto') el.style.overflowY = 'visible'; });
关掉开发者工具,按 Command + P 调出打印窗口,预览里应该不再出现断裂空白页。点“打印”就行。
