Chrome 打印预览改变了网页的样式

Posted

技术标签:

【中文标题】Chrome 打印预览改变了网页的样式【英文标题】:Chrome print preview changes styling of web page 【发布时间】:2013-05-21 05:46:23 【问题描述】:

短版:

我在 Windows 7 Pro 上使用 Chrome 27.0.1453.94

我使用 Chrome 访问 http://www.try-phpbb.com/30x/

我选择打印... |另存为PDF

打印预览看起来一点也不像网页 - 布局、链接、字体都错了。

为什么?

如何解决此问题以使 PDF 的样式与网站的样式相同?

加长版:

我是一个安全论坛的成员(即必须登录才能访问),该论坛基于 phpBB 论坛模板 (https://www.phpbb.com/)。我们的论坛将很快清除所有主题和帖子,以便为下一轮订阅者腾出空间。

版主允许(甚至鼓励)我们下载每个主题/线程/帖子的内容并将它们写入 PDF 文件,以便我们将来可以继续引用它们。我们必须自己做这件事,我自愿做这项工作,因为我有 IT 背景。但事实证明比我想象的要难。

我希望按照这个过程来做......

    下载并添加“时尚”Chrome 扩展程序 (https://chrome.google.com/webstore/detail/stylish/fjnbnpbmkenffdnngjfgmeleoegfcffe) 将 CSS 代码添加到 Stylish 以修改论坛页面的外观,以便进行 PDF 迁移 在 Chrome 中使用打印 |另存为 PDF 选项可将样式页面另存为 PDF 文档 对于多页论坛,对每个页面重复此过程,然后使用 PDFMate(或类似工具)将 PDF 文档连接在一起形成一个长 PDF。

第 1 步、第 2 步和第 4 步运行良好,但第 3 步却不行。

Chrome 中的打印预览会破坏论坛页面的外观。布局样式丢失,字体完全不同,链接丢失或看起来很糟糕。例如,尝试打印此页面 (http://www.try-phpbb.com/30x/) - 它在打印预览中的外观与在浏览器中的外观完全不同。

我可以做些什么来解决这个问题吗?我可以以某种方式给打印预览版本一些 CSS 代码来重新设置它的样式吗?有人知道为什么会这样吗?

或者,您能否提出另一种将 html 转换为 PDF 的解决方案?我尝试了 Chrome 扩展“iWeb2x”和“发送到 Google Drive”,但没有成功 - 因为论坛是安全的,他们创建的 PDF 文件是论坛的登录页面,而不是我目前正在查看的论坛主题页面。

非常感谢任何帮助 - 谢谢。

【问题讨论】:

【参考方案1】:

看看这里,也许有帮助

http://www.smashingmagazine.com/2011/11/24/how-to-set-up-a-print-style-sheet/

您可以为打印的页面设置自己的 css 样式。

希望对你有帮助,问候

【讨论】:

很棒的建议 - 感谢您为我们指明了方向。我只是从页面源代码中获取样式,并将它们复制到“时尚”定义的样式中,并用 @media print ... 包围它们太棒了 - 谢谢伙伴。【参考方案2】:

我有一个案例,如果 iframe 为 display:none,则未加载 css,因此未打印正确的 CSS 样式。您可以使用可见性修复它:隐藏;大小为零

【讨论】:

以上是关于Chrome 打印预览改变了网页的样式的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 打印预览与 DEVTools 中的不同

如何在打印预览页面上加载打印媒体样式

强制浏览器在 chrome、firefox 上打印背景图像

在 IE/Chrome/Firefox 中打印预览(或打印)时不显示图像

打印预览中未显示文本

用Chrome网页获取PDF?