android-在phonegap中将base64字符串转换为pdf

android-在phonegap中将base64字符串转换为pdf,第1张

概述在我的应用程序中,我收到了代表PDF的base64字符串.我希望用户能够将base64作为pdf保存到他的手机.我一直在寻找cordova-file-transfer插件,但是它需要一个(服务器)路径,可以从中下载文件,而不是转换base64字符串.有没有人成功使用base64字符串在phonegap中下载pdf?解决方法:经过更

在我的应用程序中,我收到了代表pdf的base64字符串.我希望用户能够将base64作为pdf保存到他的手机.我一直在寻找cordova-file-transfer插件,但是它需要一个(服务器)路径,可以从中下载文件,而不是转换base64字符串.

有没有人成功使用base64字符串在phonegap中下载pdf?

解决方法:

经过更多搜索和尝试之后,我发现了一些有用的方法.

Converting base64 to pdf blob

//Helper function that converts base64 to blobfunction b64toBlob(b64Data, ContentType, sliceSize) {    var input = b64Data.replace(/\s/g, ''),        byteCharacters = atob(input),        byteArrays = [],        offset, slice, byteNumbers, i, byteArray, blob;    ContentType = ContentType || '';    sliceSize = sliceSize || 512;    for (offset = 0; offset < byteCharacters.length; offset += sliceSize) {        slice = byteCharacters.slice(offset, offset + sliceSize);        byteNumbers = new Array(slice.length);        for (i = 0; i < slice.length; i++) {            byteNumbers[i] = slice.charCodeAt(i);        }        byteArray = new Uint8Array(byteNumbers);        byteArrays.push(byteArray);    }    //Convert to blob.     try {        blob = new Blob(byteArrays, { type: ContentType });    }    catch (e) {        // TypeError old Chrome, FF and AndroID browser        window.BlobBuilder = window.BlobBuilder ||                             window.WebKitBlobBuilder ||                             window.MozBlobBuilder ||                             window.MSBlobBuilder;        if (e.name == 'TypeError' && window.BlobBuilder) {            var bb = new BlobBuilder();            for (offset = 0; offset < byteArrays.length; offset += 1) {                bb.append(byteArrays[offset].buffer);            }                                blob = bb.getBlob(ContentType);        }        else if (e.name == "InvalIDStateError") {            blob = new Blob(byteArrays, {                type: ContentType            });        }        else {            return null;        }    }    return blob;};

然后下载本身就需要cordova-file插件:

var fileToSave= b64toBlob(fileData, 'application/pdf'); writefile();function writefile() {    console.log("request file system");    window.requestfileSystem(LocalfileSystem.PERSISTENT, 0, onfileSystemRetrIEved, onfileSystemFail);}function onfileSystemRetrIEved(fileSystem) {    console.log("file system retrIEved");    fileSystem.root.getfile(filename, { create: true }, onfileEntryRetrIEved, onfileSystemFail);}function onfileEntryRetrIEved(fileEntry) {    console.log("file entry retrIEved");    fileEntry.createWriter(gotfileWriter, onfileSystemFail);}function gotfileWriter(writer) {    console.log("write to file");    writer.onwrite = function (evt) {        alert('done');    }    writer.write(fileToSave);    window.open(filename, '_blank');}function onfileSystemFail(error) {    console.log(error.code);    alert(error.code)}
总结

以上是内存溢出为你收集整理的android-在phonegap中将base64字符串转换为pdf全部内容,希望文章能够帮你解决android-在phonegap中将base64字符串转换为pdf所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1093757.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存