使用 Print.js 打印 Base64 文件

Printing a Base64 file using Print.js

所以我正在尝试打印一个 Base64 文件,但我不确定为什么它不打印该文件。

function convertToBase64() {

var selectedFile = document.getElementById("inputFile").files;

if (selectedFile.length > 0) {

    var fileToLoad = selectedFile[0];

    var fileReader = new FileReader();
    var base64;

    fileReader.onload = function (fileLoadedEvent) {
        base64 = fileLoadedEvent.target.result;

        const pdfBlob = new Blob([base64], { type: "application/pdf" });
        const url = URL.createObjectURL(pdfBlob);
        printJS({
            printable: url,
            type: "pdf",
            base64: true
        });
    };
    fileReader.readAsDataURL(fileToLoad);
}

}

我向它传递了一个 pdf 文件,我 select 并将其转换为 Base64.Now 我想使用 Print.js 打印 Base64,但我无法使其工作。

您的代码实际上并未将 base64 数据传递给打印函数,而是 URL.

如果您想保留当前代码,只需从打印参数中删除 base64 标志。

printJS({
  printable: url,
  type: 'pdf',
});

否则,您可以只将 base64 var 传递给打印函数而不创建博客,url,打印库会为您处理。

例如:

假设 base64Data 是一个具有有效 base64 数据的变量。

printJS({
  printable: base64Data,
  type: 'pdf',
  base64: true
});