8

我正在尝试将谷歌地图嵌入到横向 PDF 中,但不知何故,wkhtmltopdf 总是将地图分成两部分,尽管地图很容易放在一页上。

我认为问题在于,地图是用瓷砖构建的。瓷砖比地图大并被切断,但 wkhtmltopdf 似乎忽略了这一点,并认为切断的瓷砖也必须适合页面......

这是一些重现此问题的示例代码:

<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>

以及将其转换为 PDF 的命令:

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

顺便说一句,我正在使用最新版本的 wkhtmltopdf ......

是否有可能使地图在没有剪切的情况下填满页面?

4

2 回答 2

4

您可以使用--page-width--page-height选项来wkhtmltopdf指定与页面具有相同纵横比的大小。您可能仍然需要将其与在正文上指定宽度和高度相结合,但如果您想用内容完全填充输出 PDF,它会很有用。

--page-width作为参考,和选项接受的 'UnitReal' 接受--page-height带有单位的浮点值:

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

但请注意,它们必须使用相同的单位指定。

于 2013-05-21T16:36:51.343 回答
1

它并没有真正禁用分页符,但设置正文高度确实会在一页上呈现您的地图。

<body style="height:1000px;">
    <div id="map" style="width:1500px;height:800px;"></div>
</body>
于 2013-01-31T00:00:27.883 回答