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
Post a Comment