it-swarm.com.ru

Не разрешается перемещать верхний фрейм к URL-адресу данных: JsPDF

try {
    var a;
    var b = new jsPDF("p", "pt", "a3");
    var c = document.getElementById("leftPieCanvas").toDataURL("image/png");
    b.addImage(c, "PNG", 265, 60);
    a = document.getElementById("rightPieCanvas").toDataURL("image/png");
    b.addImage(a, "PNG", 205, 440);
    if ($("#sales_table").length) {
        var d = tableToJson($("#sales_table").get(0));
        b.setFont("helvetica");
        b.setFontType("bold");
        b.setFontSize(9);
        $.each(d, function(a, c) {
            $.each(c, function(c, d) {
                b.cell(40, 830, 55, 20, d, a);
            });
        });
    }
    b.output("dataurlnewwindow");
} catch (e) {
    alert(e);
}

Вышеупомянутый код работает в Firefox, но не в Chrome, я гуглил и получил предложения, которые используют iframe, поэтому я создал iframe, но не смог поместить этот код в код выше, любой может подсказать, пожалуйста, как мне добавить код ниже в код выше так Я также могу сделать PDF в Google Chrome.

var html = '<html>' +
      '<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style>' +
      '<body>' +
      '<iframe src="' + url + '"></iframe>' +
      '</body></html>';
3
KuldeeP ChoudharY
    try {
    var a;
    var b = new jsPDF("p", "pt", "a3");
    var c = document.getElementById("leftPieCanvas").toDataURL("image/png");
    b.addImage(c, "PNG", 265, 60);
    a = document.getElementById("rightPieCanvas").toDataURL("image/png");
    b.addImage(a, "PNG", 205, 440);
    if ($("#sales_table").length) {
        var d = tableToJson($("#sales_table").get(0));
        b.setFont("helvetica");
        b.setFontType("bold");
        b.setFontSize(9);
        $.each(d, function(a, c) {
            $.each(c, function(c, d) {
                b.cell(40, 830, 55, 20, d, a);
            });
        });
    }
    //b.output('dataurlnewwindow');
    var uri = b.output('dataurlstring');
    openDataUriWindow(uri);
} catch (e) {
    alert(e);
}


function openDataUriWindow(url) {
    var html = '<html>' +
        '<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style>' +
        '<body>' +
        '<iframe src="' + url + '"></iframe>' +
        '</body></html>';
    a = window.open();
    a.document.write(html);
}
3
KuldeeP ChoudharY

В чистом JavaScript, возможно, так работает:

hTML: <object id="obj" type="application/pdf"> </object>

js: document.getElementById('obj').data = doc.output("datauristring");

пожалуйста, попробуйте исправить меня, если я ошибаюсь.

2
Márcio Rossato
<iframe id="ManualFrame"
        frameborder="0"
        style="border:0"
        allowfullscreen>
</iframe>

<script>
    $(function () {
        setManualFrame();
    });

    function setManualFrame() {
        $("#ManualFrame").attr("height", screen.height);
        $("#ManualFrame").attr("width", screen.width);
        $("#ManualFrame").attr("src", "data:application/pdf;base64," + Your_PDF_Data);
    }
</script>
1
Lonely Planeteer