Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 PDF不显示在应用程序中_Javascript_Android_Angularjs_Ionic - Fatal编程技术网

Javascript PDF不显示在应用程序中

Javascript PDF不显示在应用程序中,javascript,android,angularjs,ionic,Javascript,Android,Angularjs,Ionic,目标:单击按钮时,将生成一个PDF文件,其中包含div标记中的内容 问题:使用adb logcat,我可以看到base64编码字符串,但在我的android设备上,pdf不会显示/显示。单击“创建PDF”按钮时,不会发生任何事情 注意 PDF是在谷歌浏览器上生成的,谷歌浏览器是我的电脑的网络浏览器,但在安卓设备上不起作用 我一直在使用jspdf.debug.js文件来帮助我解决这个问题。 我创建PDF的总体流程如下所示: 创建一个新的JSPDF对象 从div标记收集信息并分配给JSPDF对象

目标:单击按钮时,将生成一个PDF文件,其中包含div标记中的内容

问题:使用adb logcat,我可以看到base64编码字符串,但在我的android设备上,pdf不会显示/显示。单击“创建PDF”按钮时,不会发生任何事情

注意 PDF是在谷歌浏览器上生成的,谷歌浏览器是我的电脑的网络浏览器,但在安卓设备上不起作用

我一直在使用jspdf.debug.js文件来帮助我解决这个问题。 我创建PDF的总体流程如下所示:

  • 创建一个新的JSPDF对象
  • 从div标记收集信息并分配给JSPDF对象
  • 使用pdf.output('datauri')命令获取编码的base 64
  • window.open(datauri)打开pdf
下面是当按下按钮时创建pdf的js函数代码

                $scope.toPDF = function(){
                /* test is the div id tag */
                var doc = new jsPDF();
                var source = $('#test').html();
                doc.fromHTML(source, 15, 15, {
                    'width': 170
                });
                //Doc.save makes it save onto downloads on the browser (chrome)
                doc.save("Test.pdf");
                var pdfValue = doc.output('datauri');
                window.open(pdfValue);
                //var PAGE_TO_VIEW = 1;
                //var SCALE = 1.0;

                //var pdfAsArray = convertDataURIToBinary(pdfValue);
                /*PDFJS.getDocument(pdfAsArray).then(function(pdfDocument){
                    return pdfDocument.getPage(PAGE_TO_VIEW).then(function (pdfPage) {
                        // Creating the page view with default parameters.
                        var pdfPageView = new PDFJS.PDFPageView({
                            container: container,
                            id: PAGE_TO_VIEW,
                            scale: SCALE,
                            defaultViewport: pdfPage.getViewport(SCALE),
                            // We can enable text/annotations layers, if needed
                            textLayerFactory: new PDFJS.DefaultTextLayerFactory(),
                            annotationsLayerFactory: new PDFJS.DefaultAnnotationsLayerFactory()
                        });
                        // Associates the actual page with the view, and drawing it
                        pdfPageView.setPdfPage(pdfPage);
                        return pdfPageView.draw();
                    });
                });*/

           /* var pdf = new jsPDF();

            pdf.addHTML(document.body,function() {
                var string = pdf.output('datauristring');
                $('.generatePDF').attr('src', string);
            });

            pdf.save('test' + '.pdf');
           */
    };
     var BASE64_MARKER = ';base64,';

    function convertDataURIToBinary(dataURI) {
        var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
        var base64 = dataURI.substring(base64Index);
        var raw = window.atob(base64);
        var rawLength = raw.length;
       var array = new Uint8Array(new ArrayBuffer(rawLength));

        for(var i = 0; i < rawLength; i++) {
           array[i] = raw.charCodeAt(i);
        }
        return array;
    };
我把日志缩短了不少。它说了很多东西,但如果需要,可以提供合适的。唯一的区别在于base64的长度


我已经包括了所有可用于创建pdf或帮助创建pdf的库。

你有解决方案吗?没有,我还没有找到解决方案。决定搁置这个项目。
               D/CordovaWebViewClient(24472): onPageStarted(data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ29udGVudHMgNCAwIFI+PgplbmRvYmoKNCAwIG9iago8PC9MZW5ndGggMTY2OT4+CnN0cmVhbQowLjU3IHcKMCBHCnEKcSBCVCAwIGcgNDIuNTIgNzk5LjM3IFRkCjAgLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoU2VwdGVtYmVyIDMwLCAyMDE1KSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDc4Ny4zNyBUZAowIC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKEFpcnRpbWUgVG9wdXApIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNzY3LjM0IFRkCjIxOC4zOCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChSTSAyLjAwKSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDc1NS4zNCBUZAowIC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFRvOiArNjAgMTIgMzQxMjM0NSkgVGoKRVQgUQpxIEJUIDAgZyA0Mi41MiA3MzEuMzQgVGQKMCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChTZW5kIE1vbmV5KSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDcxMS4zMCBUZAoyMTguMzggLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoUk0gMi4wMCkgVGoKRVQgUQpxIEJUIDAgZyA0Mi41MiA2OTkuMzAgVGQKMCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChUbzogKzYwIDEyIDM0MTIzNDUpIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNjc1LjMwIFRkCjAgLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoQWlydGltZSBUb3B1cCkgVGoKRVQgUQpxIEJUIDAgZyA0Mi41MiA2NTUuMjYgVGQKMjE4LjM4IC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFJNIDIuMDApIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNjQzLjI2IFRkCjAgLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoVG86ICs2MCAxMiAzNDEyMzQ1KSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDYxOS4yNiBUZAowIC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFNlbmQgTW9uZXkpIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNTk5LjIzIFRkCjIxOC4zOCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChSTSAyLjAwKSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDU4Ny4yMyBUZAowIC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFRvOiArNjAgMTIgMzQxMjM0NSkgVGoKRVQgUQpxIEJUIDAgZyA0Mi41MiA1NjMuMjMgVGQKMCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChNZXJjaGFudCBQYXltZW50KSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDU0My4xOSBUZAoyMTguMzggLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoUk0gMi4wMCkgVGoKRVQgUQpxIEJUIDAgZyA0Mi41MiA1MzEuMTkgVGQKMCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChUbzogKzYwIDc3IDc3NzY2NjYpIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNTA3LjE5IFRkCjAgLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoQWlydGltZSBUb3B1cCkgVGoKRVQgUQpxIEJUIDAgZyA0Mi41MiA0ODcuMTYgVGQKMjE4LjM4IC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFJNIDIuMDApIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNDc1LjE2IFRkCjAgLTEyLjAwIFRkCi9GMSAxMi4wMCBUZiAoVG86ICs2MCAxMiAzNDEyMzQ1KSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDQ1MS4xNiBUZAowIC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFNlbmQgTW9uZXkpIFRqCkVUIFEKcSBCVCAwIGcgNDIuNTIgNDMxLjEyIFRkCjIxOC4zOCAtMTIuMDAgVGQKL0YxIDEyLjAwIFRmIChSTSAyLjAwKSBUagpFVCBRCnEgQlQgMCBnIDQyLjUyIDQxOS4xMiBUZAowIC0xMi4wMCBUZAovRjEgMTIuMDAgVGYgKFRvOiArNjAgMTIgMzQxMjM0NSkgVGoKRVQgUQpRCmVuZHN0cmVhbQplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFIgXQovQ291bnQgMQo+PgplbmRvYmoKNSAwIG9iago8PC9CYXNlRm9udC9IZWx2ZXRpY2EvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKNiAwIG9iago8PC9CYXNlRm9udC9IZWx2ZXRpY2EtQm9sZC9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iago3IDAgb2JqCjw8L0Jhc2VGb250L0hlbHZldGljYS1PYmxpcXVlL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjggMCBvYmoKPDwvQmFzZUZvbnQvSGVsdmV0aWNhLUJvbGRPYmxpcXVlL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjkgMCBvYmoKPDwvQmFzZUZvbnQvQ291cmllci9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxMCAwIG9iago8PC9CYXNlRm9udC9Db3VyaWVyLUJvbGQvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTEgMCBvYmoKPDwvQmFzZUZvbnQvQ291cmllci1PYmxpcXVlL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjEyIDAgb2JqCjw8L0Jhc2VGb250L0NvdXJpZXItQm9sZE9ibGlxdWUvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTMgMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtUm9tYW4vVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTQgMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtQm9sZC9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxNSAwIG9iago8PC9CYXNlRm9udC9UaW1lcy1JdGFsaWMvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTYgMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtQm9sZEl0YWxpYy9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGl
               D/JsMessageQueue(24472): Set native->JS mode to null
               D/CordovaActivity(24472):onMessage(onPageStarted,data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjgg...(blahblah)
             W/cr.BindingManager(24472): Cannot call determinedVisibility() - never saw a connection for the pid: 24472
             D/CordovaWebViewClient(24472): onPageFinished(data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ2.......(blah blah blah)