2017-08-25 29 views
0

我有一个问题,我不明白。我有两个容器,每个 包含一张地图。我的目标是能够打印它们,这样做我使用了 window.print(),但当我移动到打印 布局时,瓷砖未被加载。如果您对发生的事情有任何想法,请告诉我。打印时加载磁贴问题

var map1; 
    var map2; 
    $(document).ready(function(){ 
     map1 = L.map('map1', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map1); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map1); 

     map2 = L.map('map2', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map2); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map2); 

     map1.on("click",function (e) { 
     var center = map1.getCenter(); 
     map2.flyTo(center); 
     }); 
     window.print(); 


    }); 
html, body{ 
    width: 100% !important; 
    height: 100% !important; 
    padding:0; 
    position: relative; 
    margin: 0px; 
    overflow: hidden; 
    } 
    #map1, #map2{ 
    height : 100%; 
    position: relative; 
    z-index: 500; 
    border-radius: 10px; 
    } 
    @media print { 
    @page { 
    size: landscape; 
    } 

    body *{ 
    -webkit-print-color-adjust: exact !important; 
    color-adjust: exact !important; 
    /*color:unset !important; 
    color: transparent !important;*/ 
    } 

} 
<body> 
    <div class="container" style="height:100%;"> 
     <div class="row" style="height:100%;"> 
     <div id="map1"class="col-xs-6"> 

     </div> 
     <div id="map2"class="col-xs-6"> 

     </div> 
     </div> 
    </div> 
    </body> 
var map1; 
    var map2; 
    $(document).ready(function(){ 
     map1 = L.map('map1', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map1); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map1); 

     map2 = L.map('map2', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map2); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map2); 

     map1.on("click",function (e) { 
     var center = map1.getCenter(); 
     map2.flyTo(center); 
     }); 
     window.print(); 


    }); 
​​
<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
    <link href="https://fonts.googleapis.com/css?family=Hind+Siliguri" rel="stylesheet"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script type="text/javascript" src="http://maps.stamen.com/js/tile.stamen.js?v1.3.0"></script> 
    <link rel="stylesheet" href="bootstrap.css"> 
    <link rel="stylesheet" href="print.css"> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" 
    integrity="sha512-07I2e+7D8p6he1SIM+1twR5TIrhUQn9+I6yjqD53JQjFiMf8EtC93ty0/5vJTZGF8aAocvHYNEDJajGdNx1IsQ==" 
    crossorigin=""/> 
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js" 
    integrity="sha512-A7vV8IFfih/D732iSSKi20u/ooOfj/AGehOKq0f4vLT1Zr2Y+RX7C+w8A1gaSasGtRUZpF/NZgzSAu4/Gc41Lg==" 
    crossorigin=""></script> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title></title> 
    </head> 

<body> 
    <div class="container" style="height:100%;"> 
     <div class="row" style="height:100%;"> 
     <div id="map1"class="col-xs-6"> 

     </div> 
     <div id="map2"class="col-xs-6"> 

     </div> 
     </div> 
    </div> 
    </body> 
+0

第一种猜测应该是那些可能只是背景图像 - 默认情况下不会打印的图像。但是检查这个例子表明这些只是普通的图像 - 所以也许地图插件附带的样式表明确地隐藏了它们的打印或者某物。像那样,因为他们不愿意将他们的地图打印出来......? – CBroe

+0

它可以在map1 onclick函数中打印,并且您必须单击地图一才能打印。 所以我seggust你添加一个打印按钮, –

+1

是的,这是我认为在瓦片加载之前启动打印。 –

回答

0

在另一个post看到这 - 是它的任何帮助吗? “使用Chrome和Safari,您可以将CSS样式-webkit-print-color-adjust: exact;添加到元素以强制打印背景颜色和/或图像”

+0

感谢您的回复,此属性已被使用,但未显示任何图块。 –

+0

这有帮助吗?似乎它可能是相同的问题: https://github.com/h5bp/html5-boilerplate/issues/1741 – srattigan