2012-10-30 19 views
8

Sto cercando di incorporare una mappa di Google in un PDF orizzontale, ma in qualche modo, wkhtmltopdf taglia sempre la mappa in due parti, sebbene la mappa si adatti facilmente a una pagina.wkhtmltopdf - Disabilita interruzione di pagina

Penso che il problema sia che la mappa è costruita con le tessere. Le piastrelle sono più grandi rispetto alla mappa e sono tagliati fuori, ma wkhtmltopdf sembra ignorare questo e pensa che le piastrelle tagliate devono adattarsi anche sulla pagina ...

Ecco alcuni esempi di codice per riprodurre questo:

<html> 
    <head> 
     <script src="https://maps.google.com/maps/api/js?sensor=false"></script> 
     <script> 
      window.onload = function(){      
       var fenway = new google.maps.LatLng(47.188563,8.480487); 
       var gmap = new google.maps.Map(document.getElementById("map"),{ 
        center: fenway, 
        zoom: 14, 
        mapTypeId: google.maps.MapTypeId.ROADMAP, 
        disableDefaultUI: true 
       }); 

       var marker = new google.maps.Marker({ 
        position: fenway, 
        map:gmap 
       });   

       google.maps.event.addListener(gmap,"tilesloaded",function(){ 
        window.status = "ready"; 
       }); 
      } 
     </script> 
    </head> 
    <body> 
     <div id="map" style="width:1500px;height:800px"></div> 
    </body> 
</html> 

E il comando per convertirlo in formato PDF:

wkhtmltopdf --window-status ready --orientation landscape map.html map.pdf

sto utilizzando la versione più recente del wkhtmltopdf a proposito ...

Esiste la possibilità di fare in modo che la mappa riempia la pagina senza il taglio?

+0

sto affrontando un problema simile - hai avuto fortuna a trovare la soluzione? Il mio problema è che un'immagine posizionata verso il fondo della pagina è per nessun motivo trasportata alla pagina successiva, anche se potrebbe facilmente adattarsi. – user961627

+0

@ user961627 purtroppo, no. Ho rinunciato alla ricerca, ma se trovi qualcosa per il tuo problema, sarebbe bello se lo condividessi con me :) –

risposta

1

In realtà non disabilita le interruzioni di pagina, ma l'impostazione di un'altezza del corpo rende la tua mappa su una sola pagina.

<body style="height:1000px;"> 
    <div id="map" style="width:1500px;height:800px;"></div> 
</body> 
4

È possibile utilizzare le opzioni --page-width e --page-height a wkhtmltopdf per specificare una dimensione con le stesse proporzioni come pagina. Probabilmente dovrai ancora combinarlo con la specifica di larghezza e altezza sul corpo, ma è utile se vuoi riempire completamente il PDF di output con il contenuto.

Per riferimento, il 'UnitReal' accettato dalle opzioni --page-width e --page-height accettare valori in virgola mobile con le unità:

(none) == mm 
mm 
cm == 10mm 
m == 1000mm 
didot 
inch 
in == inch 
pica 
pc == pica 
cicero 
pixel 
px == pixel 
point 
pt == point 

Ma nota che essi devono sia essere specificati con la stessa unità.

Problemi correlati