当我从浏览器打印网页时,我希望在纸上看到的内容与浏览器中看到的完全相同。确切地说:我希望浏览器以相同的方式呈现相同的页面内容,只是在具有无限高度的画布上,然后以特定于打印的方式决定如何将结果分布在纸上的物理页面上。
然而,许多网站的情况并非如此。他们可能会打印出完全不同的东西。我从未要求浏览器这样做,我也不希望发生这种情况。
有没有办法得到我想要的东西(除了截取屏幕截图、费力地剪切和粘贴它们并打印生成的图像)?有没有办法告诉我使用的 Web 浏览器(Firefox、Chrome、Safari、IE 或 Opera):“打印此页面,就像在任意高的浏览器窗口上呈现它一样”?
(附言:另请参阅:使用 Screen CSS 从浏览器打印?)
答案1
Chrome 在开发者工具中内置了此功能,但位置不太明显。
- 打开开发者工具(Windows:F12或Ctrl+ Shift+ I,Mac: Cmd+ Opt+ I)
- 点击自定义和控制 DevTools汉堡菜单按钮并选择更多工具 > 渲染设置(或者渲染在较新版本中)。
- 检查模拟印刷媒体复选框渲染选项卡并选择屏幕媒体类型。
大部分引自此处回答。请参阅下文以了解差异。
现在,当您打印时,打印输出将与您看到的完全一致。请确保在打印之前保持开发人员工具打开。关闭开发人员工具后,渲染设置将重置为正常。
注:这个答案的灵感来自于https://superuser.com/a/568847/176146。但这个答案的实际文本来自伊梅尔斯‘回答。这几乎完全一样,但我们试图做与他们的答案完全相反的事情,因此不要将覆盖设置为打印它设置为屏幕。
答案2
为什么我的网页没有打印我在浏览器中看到的内容?
某些网页打印效果不同的原因是它们具有打印样式表。
什么是打印样式表?
打印样式表可格式化网页,因此在打印时,它会自动以用户友好的格式打印。打印样式表已经存在多年,并且已有很多文章介绍。然而,很少有网站实施它们,这意味着我们留下的网页令人沮丧地无法正确打印到纸上。
令人惊讶的是,很少有网站使用打印样式表,因为:
- 打印样式表极大地提高了可用性,特别是对于包含大量内容的页面(例如这个!)
- 设置起来非常快捷方便
有些网站确实提供了页面的打印友好版本的链接,但这当然需要设置和维护。它还要求用户在屏幕上注意到此链接,然后在打印页面的常规方式(例如,通过选择屏幕顶部的打印按钮)之前使用它。然而,打印友好版本在同时打印多个网页(例如跨越多个网页的文章)时很有用。
如何禁用打印样式表?
我最近需要获取一个网站的快照,该快照与我屏幕上显示的完全相同。也就是说,我想要背景颜色、广告和完整布局。
一种方法是滚动页面时连续截取屏幕截图,然后用 Photoshop 将它们拼接起来。这种方法耗时较长,而且会得到低分辨率(72dpi)的图像。
另一种方法是打印页面,然后“另存为”PDF,而不是实际打印。对于没有定义打印页面和查看页面不同布局的页面,这种方法非常有效。
不幸的是,在网站上添加“打印”样式表变得越来越流行,当用户尝试打印网站时,该样式表会定义新的页面样式。这在标题中定义,如下所示:
我发现只有一个选项能够真正满足我的需求:由 Chris Pederick 开发的“Web Developer”插件/扩展。
使用此插件,您可以非常轻松地禁用所有样式、默认样式、内联样式、嵌入样式以及您猜对了的打印样式!
目前 Firefox 和 Chrome 均支持该扩展。我真心希望 Safari 将来能推出扩展,因为我主要使用 Safari。我发现 Safari 的唯一选项是禁用所有样式 - 该功能是最新版本 (5.0.3) 浏览器的默认功能。在开发过程中,此功能非常有用,可以查看您的网站在纯文本浏览器上的显示效果,但如果无法选择要禁用的样式,则实用性有限。
以下是在 Firefox 中使用上述扩展禁用打印样式的示例:
答案3
Firefox 的无插件解决方案:打开 Web 开发人员工具,在默认开发人员工具(齿轮图标)中勾选“截取整个页面的屏幕截图”。您只需执行一次此部分。
然后在开发者工具中,点击相机图标。整个页面将保存为 .png。在这里您可以打印它、将其转换为 pdf 等。
答案4
我也遇到了类似的问题。目前我正在使用 Chrome 的打印友好和 PDF 扩展程序。
最好的功能是,我可以手动删除打印/PDF 中不需要的项目。