javascript - PDF does not display in Ionic App Angular -


goal: when button clicked, pdf file generated contents of stuff inside div tag.

problem: using adb logcat, can see base64 encoded string, pdf not display/show up on android device. nothing happens when click create pdf button.

note pdf generated on google chrome, computers web browser not work on android device.

i have been using jspdf.debug.js file me out this. overall flow follow create pdf follows:

  • create new jspdf object
  • gather information div tag , assign jspdf object
  • obtain encoded base 64 using pdf.output('datauri') command
  • window.open(datauri) open pdf

here code of js function create pdf when button pressed.

                $scope.topdf = function(){                 /* test div id tag */                 var doc = new jspdf();                 var source = $('#test').html();                 doc.fromhtml(source, 15, 15, {                     'width': 170                 });                 //doc.save makes save onto downloads on 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 page view default parameters.                         var pdfpageview = new pdfjs.pdfpageview({                             container: container,                             id: page_to_view,                             scale: scale,                             defaultviewport: pdfpage.getviewport(scale),                             // can enable text/annotations layers, if needed                             textlayerfactory: new pdfjs.defaulttextlayerfactory(),                             annotationslayerfactory: new pdfjs.defaultannotationslayerfactory()                         });                         // associates actual page view, , drawing                         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 = 0; < rawlength; i++) {            array[i] = raw.charcodeat(i);         }         return array;     }; 

here console displays android device:

               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 null                d/cordovaactivity(24472):onmessage(onpagestarted,data:application/pdf;base64,jvberi0xljmkmyawig9iago8pc9uexblic9qywdlci9qyxjlbnqgmsawifikl1jlc291cmnlcyayidagugovtwvkawfcb3ggwzagmca1otuumjgg...(blahblah)              w/cr.bindingmanager(24472): cannot call determinedvisibility() - never saw connection pid: 24472              d/cordovawebviewclient(24472): onpagefinished(data:application/pdf;base64,jvberi0xljmkmyawig9iago8pc9uexblic9qywdlci9qyxjlbnqgmsawifikl1jlc291cmnlcyayidagugovtwvkawfcb3ggwzagmca1otuumjggodqxljg5xqovq2.......(blah blah blah) 

i shorted log quite bit. said alot of things proper 1 can provided if needed. difference in length of base64.

i have included literally every library can used create pdf or assist in process.


Comments

Popular posts from this blog

1111. appearing after print sequence - php -

java - WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/board/] in DispatcherServlet with name 'appServlet' -

Ruby on Rails, ActiveRecord, Postgres, UTF-8 and ASCII-8BIT encodings -