Entonces, estoy tratando de imprimir un archivo Base64 pero no estoy seguro de por qué no imprime el archivo.
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); }}
Le paso un archivo pdf que selecciono y lo convierto a Base64. Ahora quiero imprimir el Base64 usando Print.js pero no puedo hacerlo funcionar.
Su código en realidad no está pasando los datos base64 a la función de impresión, sino una URL.
Si desea mantener su código actual, simplemente elimine la bandera base64 de los parámetros de impresión.
printJS({ printable: url, type: 'pdf', }); De lo contrario, podría simplemente pasar la var base64 a la función de impresión sin crear el blog y la URL, la biblioteca de impresión se encargará de eso por usted.
Ex.:
Asumiendo que base64Data es una variable con datos base64 válidos.
printJS({ printable: base64Data, type: 'pdf', base64: true });