如何使用JavaScript将一些base64字符串转换为pdf

时间:2019-03-18 06:40:28

标签: javascript jquery

浏览器上有一个程序(在asp.net mvc中)连接到扫描仪,扫描文档并将其显示为图像。 enter image description here

图片的源代码如下:

data:application/octet-stream;base64,Qk0m2wEAAAAAAD4AAAAoAAAAOAMAAJEEAAABA//////////////////////wAGA/wAYMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAg13xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/

现在,我想将所有图像转换为一个pdf文件并将其附加到文件上传中。

能帮我吗?

2 个答案:

答案 0 :(得分:1)

请使用以下代码通过客户端JavaScript将Base64转换为PDF。将base64数据传递给函数base64ToArrayBuffer

function base64toPDF(data) {
    var bufferArray = base64ToArrayBuffer(data);
    var blobStore = new Blob([bufferArray], { type: "application/pdf" });
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        window.navigator.msSaveOrOpenBlob(blobStore);
        return;
    }
    var data = window.URL.createObjectURL(blobStore);
    var link = document.createElement('a');
    document.body.appendChild(link);
    link.href = data;
    link.download = "file.pdf";
    link.click();
    window.URL.revokeObjectURL(data);
    link.remove();
}

function base64ToArrayBuffer(data) {
    var bString = window.atob(data);
    var bLength = bString.length;
    var bytes = new Uint8Array(bLength);
    for (var i = 0; i < bLength; i++) {
        var ascii = bString.charCodeAt(i);
        bytes[i] = ascii;
    }
    return bytes;
};

答案 1 :(得分:0)

您需要某种JavaScript PDF库来执行此操作。 例如jsPDF有一个addImage()方法(https://rawgit.com/MrRio/jsPDF/master/docs/module-addImage.html),该方法接受base64字符串作为输入