如何在模态中打开jsPDF

How to open jsPDF in modal

我有这段代码可以使用 jsPDF 库生成我的 PDF 文件:

// JSPDF, docs: http://rawgit.com/MrRio/jsPDF/master/docs/global.html   

                                            // Default export is a4 paper, portrait, using milimeters for units
                                            var doc = new jsPDF()

                                            // set font size
                                            doc.setFontSize(12);


                                            doc.text("Invoice #" + row["client_id"],10,10);
                                            doc.text("Name: " + row["name"],10,14);
                                            doc.text("Gender: " + row["gender"], 10, 18);
                                            doc.text("Company: " + row["company"], 10, 22);

                                            //doc.save("a4.pdf");   

                                            doc.autoPrint();
                                            doc.output("dataurlnewwindow");

¿可以在模式下打开 window?

使用这个脚本:

$.ajax({
type : "POST",
url : getPrintablePDF,
dataType : "json",
contentType : 'application/json; charset=utf-8',
data : JSON.stringify(params),
success : function(data) {
    var myResponse = eval(data);
    $("<iframe />") // create an iframe
      // add the source
      .attr('src', 'data:application/pdf;base64,' + myResponse.base64EncodedResponse)
      .appendTo('.modal-body'); // append to modal body or wherever you want
}}); 

谢谢!

我也有类似的需求。由于模态无法直接解码jdpdf的dataUristring,我在iframe中加载jspdf,然后在模态中打开iframe。

$('.modal').on('shown.bs.modal',function(){
        $(this).find('iframe').html("").attr("src", pdf.output('datauristring'));
    })
        function print_row()
    {
//Logic to print the item
    var YourVar= My var value;


    // JSPDF, docs: http://rawgit.com/MrRio/jsPDF/master/docs/global.html

    // Default export is a4 paper, portrait, using milimeters for units
    var doc = new jsPDF({orientation: 'portrait', unit: 'mm', format: [210, 80]});



    doc.setFont("helvetica");
    doc.setFontType("bold");
    doc.setFontSize(16);
    doc.setFontType("italic");
    doc.text("Your text "+ YourVar, 4, 10);

    doc.autoPrint();
    // doc.save("a4.pdf");
    // this opens a new popup, after this the PDF opens the print window view
    // doc.output("bloburi");
    window.open(doc.output('bloburl'), '_blank',"toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,modal=yes,top=200,left=350,width=600,height=400");
    };