Salve a string base64 como PDF no lado do cliente com JavaScript
Então, aqui está o meu problema: eu tenho um arquivo pdf como uma String base64 que estou recebendo do servidor. Eu gostaria de usar essa string para exibir o PDF diretamente no navegador ou dar a opção "Salvar como ..." ao clicar em um link. Aqui o código que estou usando:
<!doctype>
<html>
<head>
<title>jsPDF</title>
<script type="text/javascript" src="../libs/base64.js"></script>
<script type="text/javascript" src="../libs/sprintf.js"></script>
<script type="text/javascript" src="../jspdf.js"></script>
<script type="text/javascript">
function demo1() {
jsPDF.init();
jsPDF.addPage();
jsPDF.text(20, 20, 'Hello world!');
jsPDF.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
// Making Data URI
var out = jsPDF.output();
var url = 'data:application/pdf;base64,' + Base64.encode(out);
document.location.href = url;
}
</script>
</head>
<body>
<a href="javascript:demo1()">Run Code</a>
</body>
</html>
Está funcionando bem com o Chrome e o Safari. O Firefox reconhece o pdf, mas não o exibe, já que o FF requer que as extensões estejam presentes, mas o data-uri não tem nenhum neste caso. A razão pela qual eu insisto aqui, se cromo e safári fazem isso funcionar, então tem que haver uma solução para FF e IE
Eu sei que há algumas questões relevantes para isso, mas não exatamente o exato e agora também um pouco antigo. Eu sei que uma solução seria ter o pdf gerado no lado do servidor, mas eu gostaria de gerá-lo no lado do cliente.
Então, por favor pessoal inteligente, é possível através de alguns hacks ou plugins de download JS adicionais?