2016-01-05 16 views
6

html2canvas'ı denedim, ancak beklendiği gibi çalışmadım çünkü Google Haritalar'ı özel işaretleyicilerle kullanıyorum ve bu işaretçiler olmadan haritanın ekran görüntüsünü oluşturacağım. Göründüğü gibi, böyleceGeçerli web sitesinin HTML veya JavaScript'i kullanarak "ekran görüntüsü" oluşturuyor musunuz?

Ben bir ekran görüntüsü yapmak istiyorum:

enter image description here

Ama sonucudur:

enter image description here

grafik de bu büyük görünmüyor. Kullanabileceğim alternatifler var mı? İşte

I (#downloadPDF bir düğmedir) html2canvas kullanarak bir resim oluşturmak için kullanılan kod şudur: barındırma kurulumuna

<script type="text/javascript"> 
jQuery(document).ready(function ($) { 
    $('#downloadPDF').click(function() { 
     html2canvas($(".map"), { 
      logging: true, 
      useCORS: true, 
      onrendered: function (canvas) { 
       var imgData = canvas.toDataURL('image/png'); 
       window.open(imgData); 
      } 
     }); 
    }); 
}); 

+0

Umarım, CSS bunu yapmaz. Kullanılmakta olan herhangi bir medya sorgusu var mı? Onları kontrol et. –

+2

html2canvas dom kullandığı için, başka bir tuval gibi başka şeyler varsa işe yaramazsa düşünüyorum.Yalnızca istemci tarafı yapabilirsen bilmiyorum belki phantomJS http: // phantomjs gibi bir şey kullanmak zorunda. org/screen-capture.html – FabioCosta

+0

@AfzaalAhmadZeeshan, Ben de Bootstrap kullanıyorum ve birkaç medya sorgusu görüyorum, ancak bu medya sorgularının html2canvas kütüphanesini nasıl etkilediğinden emin değilim. –

cevap

1

Emin değilim, ama yaratmak için PhantomJS kullandık web sayfalarının ekran görüntüleri ve bunları görüntü veya PDF olarak kaydedin.

Kitaplığı indirdiğinizde, örnek dizinde bir URL'yi kaydetmek için bağımsız değişkenleri iletmenize izin veren bir rasterize.js var. Bunu birkaç saniyeliğine duraklatmak için değiştirebilirsiniz, daha sonra sayfayı kaydeder - haritayı doğru şekilde yüklemek için yeterli zaman verir.

http://phantomjs.org