1

虽然一切似乎工作正常,但当调试器点击 pres.writeFile() 函数时,我根本无法获得 pptx。主要是一个基于承诺的问题。当然,在使用 Chrome 进行测试时,一切都可以正常工作。以前有人遇到过类似的问题吗?有什么建议么?IE11有什么问题?

    var pres = new pptxgen();

function fetch_data(el) {
    $.ajax({
        url:`${document.querySelector('.off-to-see-the-wizard > .route').innerHTML}`,
        contentType:"application/json",
        dataType:"json",
        success:function(response){
            if(response)
            {                 
                var data=JSON.parse(response);
                createPresentation(data,el);
            }
            else{
                console.log(response)
            }
        },
        error:function(err){
            console.log(err);
        }
    })
}


function createPresentation(data){
    var second_image="image/base64 ...."
    var main_image="image/jpg;base64 ..."

    function createMasterSlide(pres){
        pres.defineSlideMaster({
                title:'MASTER_SLIDE',
                bkgd:  'FFFFFF',
                objects:[
                    {'text':{text:`Test ${data._gateDescript} review`,options:{color:'000000',x:4.7,y:6.77,h:0.46,w:3.63, fontSize:14}}},
                    {'image':{x:0.3,y:6.47,w:1.14,h:0.83,data:second_image}}
                ],
                slideNumber: { x:9.11, y:6.77 ,w:0.43 ,h:0.42}
            })
        }
    function createMainSlide(pres){
        pres.author="Team";
        pres.layout='LAYOUT_4x3';
        let main_slide=pres.addSlide();
        main_slide.addImage({data:main_image, w:10, h:7.5})
        main_slide.addText(`Project ID:  ${data._p.Id}\nProject Name: ${data._p.Name}`, {color:'D55C00' ,x:0.47, y:3.56, w:5.0, h:0.7, fontSize:24})
        main_slide.addText(`Review: Test ${data._gateDescript} \nDate: ${Date.now()} `)
        }

    createMasterSlide(pres);
    createMainSlide(pres);
    pres.writeFile('Presentation.pptx');
}

快速更新错误:请参阅附件。错误

Ι 知道 jszip 与 ie11 有问题 具体来说 pptxgenjs 使用 jszip ,它运行 generateInternalStream。在此功能的范围内,发生了一些事情。有什么线索吗?

4

2 回答 2

0

您使用的是哪个版本的 jszip?似乎 pptxgenjs@3.1.1 默认使用 jszip v3.2.1。

在 IE 和 Edge 中使用 jszip 3.2.x 版本时,我发现有些错误。你可以参考这个线程。没有这个问题的最后一个版本是 3.1.5。您可以尝试使用 jszip 版本 3.1.x。

于 2020-03-30T07:29:20.887 回答
0

快速更新供您参考。最终通过安装 jszip 3.1.5 版本解决了这个问题。它的稳定和功能使用 IE11。

所以你应该安装这个特定的版本

npm install jszip@3.1.5 --save

然后请导航到节点模块,复制所有 jszip 节点模块。导航回 pptxgenjs 节点模块。导航到 pptxgenjs--->node_modules 并使用您之前安装和复制的版本覆盖 jszip。

所以 pptxgenjs lib 将使用 jszip 3.1.5 版本。

问题解决了。谢谢大家 :)

于 2020-03-30T12:03:56.887 回答