如何在网络浏览器中获得“所见即所得”(打印所见内容)?


70

当我从浏览器打印网页时,我希望能将我在浏览器中看到的内容准确地打印在纸上。准确地说:我希望浏览器以相同的方式呈现相同的页面内容,除了在具有无限高度的画布上,然后以特定于打印的方式决定如何在纸的物理页面上分配结果。

但是,这根本不是许多网站上发生的事情。他们可能会打印出完全不同的内容。我从未要求浏览器执行此操作,并且我不希望发生这种情况。

有什么方法可以得到我想要的(除了截取屏幕截图,刻苦地将它们粘贴和粘贴以及打印结果图像之外)?有没有办法告诉我使用的Web浏览器(Firefox,Chrome,Safari,IE或Opera):“打印此页面,就像在任意高的浏览器窗口上呈现它一样”?

(PS:另请参见:使用屏幕CSS从浏览器打印吗?)



Chrome扩展程序“ Nimbus Screen Capture App”可以获取屏幕上显示的整个网页的图像(包括不滚动就看不到的部分)。也就是说,就好像您已经拍摄了一系列屏幕截图并将其拼接在一起一样,但这仅需单击一下鼠标即可。
AE

1
打印样式表从根本上是有用的。例如,当我打印此页面时,我是否想要问题和答案,或者我还想要标题,相关的问题和页脚?我还要感谢所有评论可见。网站是交互式的,纸不是(大部分时间),这些样式表可以帮助您专注于内容,从而节省墨水和纸张。
SBoss 2014年

1
@SBoss:并不是每个打印页面的人都会对相同的东西感兴趣。我建议打印友好的页面应让用户选择应打印的内容,并使打印版本与屏幕版本匹配,但通常用于显示要打印内容的控件除外(应该有一个选项在打印输出中启用和禁用它们,但无论如何它们通常应该出现在屏幕上)。
2014年

1
关于重复的问题:我尝试在打印之前剥离打印样式表,但它不起作用,因此我不认为问题是重复的。
reinierpost 2014年

Answers:


37

Chrome在开发人员工具中内置了此功能,但位置并不明显。

  • 打开开发者工具(Windows:F12Ctrl+ Shift+ I,Mac: Cmd+ Opt+ I
  • 单击“ 定制和控制DevTools汉堡包”菜单按钮,然后选择“ 更多工具”>“渲染设置”(或较新版本的“ 渲染”)。
  • 选中“ 渲染”选项卡上的“ 模拟打印介质”复选框,然后选择“ 屏幕”介质类型。

大部分引用来自此答案。区别见下文。

现在,当您打印时,打印输出将完全与您看到的一样。确保在打印之前保持开发人员工具为打开状态。关闭开发人员工具后,“渲染”设置将重置为正常状态。

注意:此答案的灵感来自https://superuser.com/a/568847/176146。但是,该答案的实际文本来自lmeurs答案。几乎完全一样,但是我们试图做与他们的答案完全相反的事情,因此不是将替代设置为Print而是将其设置为Screen


Firefox也于去年获得了此功能。这显然是优越的,但是出于这个原因,我是否应该拒绝旧的答案?
reinierpost

@reinierpost当然取决于您。但是以下内容可能会对您的决定有所帮助-meta.stackexchange.com/q/93969/226780
Benjamin

谢谢; 这些答案说我应该改变,所以,即使以前接受的答案似乎在撰写本文时可能是最有用的答案,我也应该改变。
reinierpost

现在,当我在Chrome中尝试此操作时,只有在移动视图模式下才能看到该选项;我无法在页面的常规桌面视图中找到它。
reinierpost

Firefox也具有此功能,但方式有所不同。我想需要一个单独的答案来证明这一点。我不确定其他浏览器。
reinierpost

22

为什么我的网页无法打印在浏览器中看到的内容?

您的某些网页打印不同的原因是因为它们具有打印样式表


什么是打印样式表?

打印样式表会格式化网页,以便在打印时自动以用户友好的格式进行打印。打印样式表已经存在了很多年,并且已经写了很多。但是,很少有网站实现它们,这意味着我们留下的网页令人沮丧地无法正确打印在纸上。

值得注意的是,很少有网站将打印样式表用作:

  • 打印样式表极大地提高了可用性,特别是对于内容很多的页面(例如本页面!)
  • 它们非常快捷且易于设置

有些网站确实提供了指向该页面的打印友好版本的链接,但是当然需要进行设置和维护。它还要求用户在屏幕上注意到此链接,然后在打印页面之前以常规方式使用它(例如,通过选择屏幕顶部的打印按钮)。但是,当同时打印多个网页(例如跨多个网页的文章)时,适合打印的版本非常有用。

打印网站时,禁用打印样式表(CSS)


如何禁用打印样式表?

最近,我需要获取一个与屏幕上显示的完全相同的网站快照。也就是说,我想要背景颜色,我想要广告,我想要完整的布局。

一种选择是在向下滚动页面时获取连续的屏幕截图,然后在Photoshop中将它们重新组合在一起。这很耗时,并且会留下低分辨率(72dpi)的图像。

另一种方法是打印页面,然后“另存为” PDF,而不是实际打印。对于没有为打印页面和查看页面定义不同布局的页面,此方法效果很好。

不幸的是,在网站上包含“打印”样式表已变得越来越流行,该样式表在用户尝试打印网站时定义新的页面样式。这是在标头中定义的,看起来像这样:

我发现只有一个选项可以真正满足我的需求:Chris Pederick开发的“ Web开发人员”附加组件/扩展。

使用此插件,您可以非常轻松地禁用所有样式,默认样式,内联样式,嵌入样式,以及您猜中的打印样式!

当前可用于Firefox和Chrome。我真的希望有一天Safari扩展会出现,因为我主要使用Safari。我为Safari找到的唯一选项是禁用所有样式-默认情况下,浏览器的最新版本(5.0.3)附带此功能。这在开发过程中很有用,以查看如何在纯文本浏览器上查看您的网站,但无法选择要禁用的样式,因此实用程序有限。

这是在Firefox中使用上述扩展名禁用打印样式的示例:

在此处输入图片说明

打印样式表-权威指南


2
谢谢,但这对我在(trelloprinter.com)上尝试过的网站没有帮助。当这些人从根本上破坏了他们要解决的问题的方法时,我惊讶于这些人如何冒出这样的胆量:“令人沮丧,许多网站没有实现它们”。具有用于打印的单独的样式表意味着您使用户界面设计101失败,或者根本没有采用它。
reinierpost 2014年

1
也许ScreenshotCaptor会做您需要实现的目标...除其他功能外,它将捕获滚动区域...但我似乎还记得,它在Google Maps中的表现不太好。
DavidPostill

1
这不会有太大帮助。如果您使用的是IE(我知道,请保存下来供以后使用),则可以使用Greenshot(getgreenshot.org),它具有滚动IE页并进行打印的选项。它将整个页面组合成1个屏幕截图。然后,您可以按照自己的意愿进行编辑。
Ismael Miguel

18
@reinierpost“拥有单独的样式表进行打印意味着您的用户界面设计101失败”-那是您要在那里绘画的非常宽的画笔。您是在告诉我,如果您打印出此页面,则希望在侧面显示“热网络问题”或有关聊天室的信息?页面的某些部分仅在交互式上下文中有用-为什么浪费空间并用墨水打印它们?
克里斯·海斯

4
@reinierpost太荒谬了。假设某个站点的背景为深色,前景为浅色。我不会为您说话,但是我个人很高兴浏览器具有自己的打印样式以及许多站点,因此我在打印时不会浪费所有墨水。您有很多原因想要打印内容本身,而不是屏幕截图。
布拉德2014年

9

Firefox的无插件解决方案:打开Web开发人员工具,在“默认开发人员工具”(齿轮图标)中,选中“获取整个页面的屏幕截图”。您只需要执行一次此部分。

然后在开发人员工具中,单击相机图标。整个页面将另存为.png。在这里您可以打印,转换为pdf等。


哇,这正是我想要的。谢谢!
reinierpost

4
此功能不再需要开发人员工具!在地址栏的右侧,选择三个点,单击“截屏”,然后选择“保存整页”。
numbermaniac

太神奇了,谢谢!
codingjeremy

8

我正在使用Chrome扩展程序:网页屏幕截图。只需单击两次,即可将完整的网页转换为jpg或pdf。无需将屏幕截图自己粘在一起。该页面如下所示: 网页截图演示


1
这似乎也起作用。我希望PDF可以为我提供可伸缩的图形,但这只是位图。
reinierpost 2014年

1
证明您答案的绝佳方法!:)我会接受这一项作为答案..
维杰Chavda

惊人的扩展!它似乎在横向模式下创建pdf。可以以纵向模式创建pdf吗?@reinierpost
user674669 '18

3

我也面临着类似的问题。目前,我正在使用 适用于Chrome的友好打印和PDF扩展

最好的功能是我可以手动删除不需要的打印/ PDF中的项目。


有趣的...在Firefox中,我为此使用PrintWhatYouLike书签。它运作良好,但不能处理“无限”滚动(即Quora)-此扩展也不起作用。
reinierpost

小费-谢谢!默认情况下,它将文本保留为文本,将链接保留为链接,并以全尺寸显示图像。一篇载有几张大图片的6页旅游文章现在是500kb的完美PDF。
Mike Honey


1

(冒着将其转变为一组“ 软件建议”答案的风险,但是到目前为止,安装和使用浏览器扩展X似乎是唯一可行的答案:)

最近,我一直在为此使用Open Screenshot Chrome扩展程序,对此我感到非常满意。较长的Quora页面没有问题。

更新(2017年11月):这不再是最佳选择:Firefox和Chrome现在支持在其开发人员工具中获取全页屏幕截图


我认为您是说“一键式网页截图”而不是“打开截图”。对?
user674669

不。显然,他们改名了。我不确定该如何处理。
reinierpost

1

今天,可以在Firefox中完成此操作(我现在正在使用65.0.2),如下所示:

  1. 按F12。将显示“开发人员工具”窗格。
  2. 在右上角附近,有一个相机图标。要截取整个页面的屏幕快照,请单击它。

“设置”中(要访问它们,请单击相机图标右侧的三个点),可以略微自定义其行为。默认情况下,它将截图保存到Firefox下载文件夹。

如果缺少相机图标,则首先需要在“设置”中启用它。

Firefox开发人员工具中的屏幕截图工具

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.