Я пытаюсь создать PDF файл из двоичного потока, который я получаю в ответ от запроса ajax.
Через XmlHttpRequest я получаю следующие данные:
%PDF-1.4....
.....
....hole data representing the file
....
%% EOF
То, что я пробовал до сих пор, заключалось в том, чтобы вставлять свои данные через данные: uri.
Теперь нет ничего плохого в этом. Он работает нормально. К сожалению, он не работает в IE9 и FF.
Возможная причина может заключаться в том, что у FF и IE9 есть проблемы с этим использованием данных-uri.
Теперь я ищу любое решение, которое работает для всех браузеров.
Здесь мой код:
// responseText encoding
pdfText=$.base64.decode($.trim(pdfText));
// Now pdfText contains %PDF-1.4 ...... data...... %%EOF
var winlogicalname = "detailPDF";
var winparams = 'dependent=yes,locationbar=no,scrollbars=yes,menubar=yes,'+
'resizable,screenX=50,screenY=50,width=850,height=1050';
var htmlText = '<embed width=100% height=100%'
+ ' type="application/pdf"'
+ ' src="data:application/pdf,'
+ escape(pdfText)
+ '"></embed>';
// Open PDF in new browser window
var detailWindow = window.open ("", winlogicalname, winparams);
detailWindow.document.write (htmlText);
detailWindow.document.close ();
Как я уже сказал, он отлично работает для Opera и Chrome (Safari не тестировался). Использование IE или FF откроет пустое новое окно.
Есть ли какое-либо решение, например, создание файла pdf в файловой системе чтобы пользователь мог его загрузить?
Мне нужно решение, которое работает во всех браузерах по крайней мере, в IE, FF, Opera, Chrome и Safari.
У меня нет разрешения на редактирование реализации веб-сервиса. Так что это должно быть решение на стороне клиента.
Любые идеи???