如何使用JavaScript将某些Base64字符串转换为PDF

3

有一个程序(使用ASP.NET MVC编写)在浏览器上连接到扫描仪,扫描文档并将其显示为图像。 在此输入图片描述

图像的源代码如下:

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

现在,我想将所有图像转换为一个PDF文件并将其附加到文件上传中。你能帮我吗?

1
可能是使用JavaScript在客户端将base64字符串保存为PDF的重复问题。 - ellipsis
2个回答

9
请使用以下代码将Base64转换为PDF,并使用客户端JavaScript。将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;
};

你好,对我来说它不起作用,这是我的数据格式,“data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2....” - Mamunur Rashid
1
@MamunurRashid 将文件类型更改为 image/jpeg,上面的是 PDF 的。 - Prasanna Brabourame
1
msSaveOrOpenBlob已被弃用,不再使用。 - mahen23
@mahen23 这是一个 if 条件语句,它只会在 msSaveOrOpenBlob 存在时才使用,否则将以替代方式工作,而不执行 if 语句。 - Prasanna Brabourame

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接