我的 Web 应用程序的基础是一张地图,由许多苍白的瓷砖组成。因此,使用黑白打印机打印此页的结果非常糟糕。
是否有可能放置在地图上的某个图层上,这会使其更具对比性?
(在打印模式下更换瓷砖是个坏主意,是的)。
我的 Web 应用程序的基础是一张地图,由许多苍白的瓷砖组成。因此,使用黑白打印机打印此页的结果非常糟糕。
是否有可能放置在地图上的某个图层上,这会使其更具对比性?
(在打印模式下更换瓷砖是个坏主意,是的)。
你有两条路线。首先是添加打印样式表,如下所示:
<link rel="stylesheet" href="printstyle.css" media="print" />
或者,在没有媒体声明的常规 css 文件中,
@media print {
#my-map-element {
display: none; /* just for an example */
}
}
另一种方法是在打印事件发生时调用 javascript 函数。但是,据我所知,这仅受 Firefox 6+ 和 IE 支持:
window.onbeforeprint = function() { /* ... */ }
如果您从 javascript 生成打印事件,则可以使用以下代码解决浏览器兼容性问题:
(function(){
// make a copy of the native window.print
var _print = this.print;
// create a new window.print
this.print = function () {
// if `onbeforeprint` exists, call it.
if (this.onbeforeprint) onbeforeprint(this);
// call the original `window.print`.
_print();
// if `onafterprint` exists, call it.
if (this.onafterprint) onafterprint(this);
}
}())
(来源:https ://stackoverflow.com/a/3339821/300011 )