Как распечатать карту, которая использует API карт Google в PDF, используя Rotativa? - PullRequest
0 голосов
/ 25 марта 2019

Я использую Rotativa для получения PDF-файла, содержащего информацию, которая ранее отображалась на модальном языке. Тем не менее, когда пользователь нажимает кнопку для получения PDF-файла, в этом файле нет карты, использующей API Google Maps., есть ли способ решить эту проблему?

Вот модал, который ранее показывался пользователю с информацией:

MODAL

Это PDF,обратите внимание, что PDF не печатает карту, и она должна быть там:

PDF

Вот мой код:

Код переднего конца


             var map = new google.maps.Map($('#map')[0], {
            center: { lat: 19.397, lng: -99.144 },
            zoom: 10
        });

        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(19.397, -99.144),
            map: map,
            title: ""
        });

        var bounds = new google.maps.LatLngBounds();

        google.maps.event.trigger(map, "resize");
        var center = map.getCenter();
        google.maps.event.trigger(map, "resize");
        map.setCenter(center);


        marker.setPosition(LatLng);
        google.maps.event.trigger(map, 'resize');
        map.setCenter(LatLng);
        map.setZoom(18);



        /*Poligonos*/
        var rut = $("#txt_Ruta").val();
        var ced = $("#txt_Cedis").val();
        var frecu = CosasModal.orden.Frecuencia;

        var jqxhr = $.post("/Poligonos/ObtenerPoligono", { "Ruta": rut, "Frecuencia": frecu, "Cedis": ced },
            function (data) {
                if (data.status == "OK") {
                    var Poligono = new google.maps.Polyline({
                        path: data.coordinates,
                        geodesic: true,
                        strokeColor: '#FF0000',
                        strokeOpacity: 1.0,
                        strokeWeight: 2
                    });

                    Poligono.setMap(map);

                    var infowindow = new google.maps.InfoWindow({
                        content: "Ruta " + rut + "<br>Frecuencia: " + frecu + "<br>Cedis: " + ced
                    });

                    google.maps.event.addListener(Poligono, 'click', function (event) {

                        infowindow.setPosition(event.latLng);
                        infowindow.open(map);
                    });

                    var points = Poligono.getPath().getArray();
                    for (var n = 0; n < points.length; n++) {
                        bounds.extend(points[n]);
                    }
                    map.fitBounds(bounds);
                }
            });
        jqxhr.fail(function () {
            //alert("Error de comunicación con el servidor.");
            swal("Error", "Error de comunicación con el servidor.", "error");
        });
        map.fitBounds(bounds);
        map.panToBounds(bounds);
        /*fin poligonos*/


Код Ротатива (представьте, что вы получаете переменную idOrden)

   var pdf = new ActionAsPdf("ModalPedidosPdfView", new { idOrden = idOrden })
            {
                FileName = "ReporteOrdenIndividual" + DateTime.Now.ToString() + "_" + idOrden
            };

            return pdf;

1 Ответ

0 голосов
/ 28 марта 2019

Я решил свою проблему, используя Select.pdf вместо Rotativa

...