Ok, supponiamo di avere i dati del documento memorizzati da qualche parte, prendiamo arbitrariamente lo this pdf.Creare e servire correttamente Blob PDF tramite API file e URL HTML5
numero 1. Quello che voglio fare è fare una chiamata AJAX a questo URL (perché ho bisogno di passare alcune intestazioni di autenticazione ed è cross domain). Quindi prendi i dati restituiti, crea un blob url, aggiungi un iFrame al DOM e indirizza il src
all'URL blob.
Attualmente il mio codice simile a questo:
$.ajax({
url:'http://www.grida.no/climate/ipcc_tar/wg1/pdf/tar-01.pdf'
}).done(function(data){
var file = new Blob([data], {type:'application/pdf'}),
url = URL.createObjectURL(file),
_iFrame = document.createElement('iframe');
_iFrame.setAttribute('src', url);
_iFrame.setAttribute('style', 'visibility:hidden;');
$('#someDiv').append(_iFrame);
});
Purtroppo, io sono sempre un 'Impossibile rendering PDF' nel iFrame.
numero 2. Mi piacerebbe che questo risultasse in un prompt di download del file. Non sei sicuro di come garantire questo dato che i PDF saranno naturalmente visualizzati solo nell'iFrame.
la stringa di dati inizia in questo modo: '% PDF-1.5% 2504 0 obj <> endobj 2511 0 obj <>/Filtro/FlateDecode/ID []/Indice [2504 10]/Info 2503 0 R/Lunghezza 47/Prec 3720769/Roo t 2505 0 R/Dimensione 2514/Tipo/XRef/W [1 2 0] >> stream h bbd'b'9 ] x? abP | ... ' –
Solo FYI a chiunque. Finito completamente lavorando a questo problema perché non sembrava possibile. Ho finito per servire temporaneamente i file per 10 secondi, puntando un iframe sul suo URL arbitrario e rimuovendoli dopo il download (nessuna autenticazione tranne i cookie del browser). –