Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象范围-将图像数据URL导入pdfMake_Javascript_Object_Scope_Callback_Pdfmake - Fatal编程技术网

Javascript对象范围-将图像数据URL导入pdfMake

Javascript对象范围-将图像数据URL导入pdfMake,javascript,object,scope,callback,pdfmake,Javascript,Object,Scope,Callback,Pdfmake,尝试使用pdfMake从JSON数据动态创建pdf,报告运行良好,但我的图像除外。 我曾尝试将命名键用于对象,甚至直接用于docDefinition,但它们似乎包含console.log上的数据,但总是未定义。 如果我直接在每个(//imageData[“image0”]=testDataURL;)之外分配它,它实际上唯一起作用的时候,但这对我不起作用,因为我需要获取每个“学生”记录的每个图像的dataurl。 它必须是范围问题或异步问题。请帮忙 function getBase64Image

尝试使用pdfMake从JSON数据动态创建pdf,报告运行良好,但我的图像除外。
我曾尝试将命名键用于对象,甚至直接用于docDefinition,但它们似乎包含console.log上的数据,但总是未定义。
如果我直接在
每个
//imageData[“image0”]=testDataURL;
)之外分配它,它实际上唯一起作用的时候,但这对我不起作用,因为我需要获取每个“学生”记录的每个图像的dataurl。
它必须是范围问题或异步问题。请帮忙

 function getBase64Image(url, onSuccess, onFail, outputFormat){
        var canvas = document.createElement('CANVAS'),
            ctx = canvas.getContext('2d'),
            img = new Image();
        //img.crossOrigin = 'Anonymous';

        img.onload = function(){
                    var dataURL = "";
                    canvas.height = this.height;
                    canvas.width = this.width;
                    ctx.drawImage(this, 0, 0);
                    dataURL = canvas.toDataURL(outputFormat);
                    onSuccess(dataURL);
                    canvas = null; 
                };
        img.onerror = function(e){
            onFail("No Image");
        }
        img.src = url;

    } buildPdf = function(studentData){
        var docDefinition = {"content": [],"images":{},"styles":{},"defaultStyle":{}};
        var imageData = {};
        var imageData2 = [];
        $j(studentData).each(function(index, student){
            docDefinition.content.push({"text": "Medical Care Plan","style": "title"});
            docDefinition.content.push({"columns":[{"text": [{"text": "Name: ", "style": "label"},{"text": student.first_name + " " + student.last_name + "\n"},
                                        {"text" : "Grade: ", "style": "label"},
                                        {"text" : student.grade_level + "\t"},
                                        {"text" : "HRM: ", "style": "label"},
                                        {"text" : student.home_room + "\t"},
                                        {"text" : "Bus#: ", "style": "label"},
                                        {"text" : student.bus_route + "\n"},
                                        {"text": "Teacher: ", "style": "label"},
                                        {"text" : "Teacher Name goes here\n\n"},
                                        {"text": "Doctor: ", "style": "label"},
                                        {"text" :  student.doctor_name + "\t"},
                                        {"text" : "Doctors Phone: ", "style": "label"},
                                        {"text" : student.doctor_phone + "\n"},
                                        {"text" : "Health Card: ", "style": "label"},
                                        {"text" : student.ON_HealthCard_Number}],width:400 },
                                        {"image": "image0","fit" : [100, 100], "alignment" : "left", width : "*"}]});

            getBase64Image('/admin/stp/'+student.stuId+'ph.jpeg',function(base64Img){
                imageData["image0"]=base64Img;
                imageData2[index]=base64Img;
                //docDefinition.images["image"+index]=base64Img;
            },function(errorMsg){
                getBase64Image('/images/TLDSB_Custom/photo_not_available_BW.png',function(base64Img){
                    imageData["image0"]=base64Img;
                    imageData2[index]=base64Img;

                });
            });



        });


        //console.log(imageData2.length);

        //imageData["image0"] = testDataURL;
        //docDefinition.images["image0"]=imageData["image0"];

        docDefinition.styles.title = { fontSize: 20, bold: true, alignment: 'center'};
        docDefinition.styles.heading = { fontSize: 14,margin: [0, 5, 0, 0],bold: true};
        docDefinition.styles.subheading = { fontSize: 14,margin: [5, 0, 0, 0],bold: true};
        docDefinition.styles.smallHeader = { fontSize: 10,margin: [0, 5, 0, 0],bold:true};
        docDefinition.styles.small = { fontSize: 8 };
        docDefinition.styles.label = { bold: true };
        docDefinition.styles.indent = { margin: [20, 0, 0, 0] };
        docDefinition.styles.tableHeader = { bold: true, fontSize: 13 };

        docDefinition.defaultStyle = { fontSize: 10 };

        //console.log(studentData);

        console.log(docDefinition);

        //pdfMake.createPdf(docDefinition).open();    
        pdfMake.createPdf(docDefinition).download('MedicalCarePlan.pdf');  
        closeLoading();

    };