3

我正在寻找有关如何处理问题的选项,因为我认为没有简单的解决方法。

我们正在处理一个非常顽固的客户端,它不想接受浏览器默认不打印 css 背景的事实。

他确信运行 IE 6 和 7 的 XP 是最常见的浏览器,而我们不支持它们是一家糟糕的公司。(我已经向他展示了我们典型客户访问者的分析结果,但这并没有改变他的想法)。我正在重写他的网站来处理它们,但现在我被打印的东西困住了。

他希望(需求是一个更准确的术语)让页面完全按照它在网站上的外观打印,并且它们在所有操作系统和浏览器中看起来完全一样。我认为将所有图像放在 html 中而不是 css 中是不可行的,而且我尝试了列表样式的提示,但没有运气。网站的许多颜色也来自背景 css 颜色。

还有其他选择吗?甚至关于如何处理这个客户的建议?

4

2 回答 2

1

这是一种稍微不同的方法:我会考虑将网页转换为可以打印的 pdf。进行转换的一个好方法是通过一个名为 PhantomJS 的产品。它本质上是一个无头浏览器,它将呈现页面并将其即时转换为 pdf。您可以通过运行 PhantomJS 服务器进行集成,并在原始页面添加链接以下载 pdf。

然后,pdf 将在所有浏览器中一致地打印页面。但是,还有大量额外的工作,因此您必须考虑它是否适合您的需求和时间线......此解决方案的额外复杂性是您必须在某处托管 PhantomJS javascript 服务器,使用编写 PhantomJS 脚本将您的页面转换为 pdf 的 API。Pdf 和图像转换相对容易,但如果您的页面需要登录,您还必须考虑身份验证。PhantomJS 会将转换后的文件写入服务器上的磁盘,因此您还必须管理到用户浏览器的下载。

总而言之,这是一项很好的工作,但您可能会发现至少了解它会很有趣:-)。

更多信息在这里: http: //phantomjs.org/

于 2013-09-06T01:47:42.823 回答
1

尝试类似:

<style type='text/css'>
  @import 'whatever.css' screen, print;
</style>

确保@import高于所有其他 CSS 标记,并且您的目标是您的页面的 CSS 所在的外部样式表。

于 2013-09-06T01:46:43.393 回答