Ну, наконец, я пришел к следующему решению: во-первых, мы используем AJAX-запрос, чтобы сохранить детали формы и генерировать PDF на стороне сервера.
success : function(form, action) {
var result = Ext.decode(action.response.responseText)
if (result.success) {
this.openForPrint(result.tmpFileName);
}
},
Чем мы используем iframe для загрузки и открытия файла
openForPrint : function(fileSrc) {
Ext.DomHelper.append(document.body, {
tag : 'iframe',
name : 'printIframe',
src : this.getPrintPalletTagUrl()+'?userAction=actionPrint&tmpFileName='+fileSrc
});
}
Такой подход позволяет нам проверять ответ операции сохранения и показывать пользователю полезный диалог в случае сбоя сохранения.