Servlets 在Ext.窗口中加载PDF
我有一个返回PDF的servlet。我尝试的是将PDF加载到Ext.Window。下面是示例源Servlets 在Ext.窗口中加载PDF,servlets,extjs,Servlets,Extjs,我有一个返回PDF的servlet。我尝试的是将PDF加载到Ext.Window。下面是示例源 Ext.getCmp('hisAmpPhyWin').load( { url:'servlet/Servlet/', params: {xhtml:xhtmlData}, text: 'Loadi
Ext.getCmp('hisAmpPhyWin').load(
{
url:'servlet/Servlet/',
params: {xhtml:xhtmlData},
text: 'Loading PDF...',
scripts: false
});
其中“hisAmpPhyWin”是一个Ext.Window实例
问题是它在浏览器中显示的是PDF内容(我是指ascii字符),而不是实际的PDF
请帮助解决此问题。我不认为您可以在本机上解决此问题,但有一个非常好的用户体验可以解决此问题
我不认为你可以在本地完成,但是有一个非常好的用户体验可以做到这一点
我认为您最好使用
IFRAME
标记来实现这一点
var win = new Ext.Window({
title: 'PDF Content',
width: 420,
height: 320,
plain:true,
html: String.format(
'<iframe src="servlet/Servlet?p1={0}&p2={1}" width="400" height="300" />',
xhtmlData.p1, xhtmlData.p2)
})
win.show();
var-win=新的外部窗口({
标题:“PDF内容”,
宽度:420,
身高:320,
朴素:没错,
html:String.format(
'',
xhtmlData.p1、xhtmlData.p2)
})
win.show();
注意:如果浏览器知道内容类型是应用程序/PDF
,那么它只会将您的数据作为PDF打开,在这里,您使用的是AJAX.load()
方法,它会忽略从servlet响应返回的内容类型,但是,如果使用IFRAME直接引用它,浏览器将应用正确的
别忘了确保窗口的每个实例都被销毁(
closeAction='close'
,默认设置),否则它会一次又一次地打开同一个PDF文档。我想你最好使用IFRAME
标记
var win = new Ext.Window({
title: 'PDF Content',
width: 420,
height: 320,
plain:true,
html: String.format(
'<iframe src="servlet/Servlet?p1={0}&p2={1}" width="400" height="300" />',
xhtmlData.p1, xhtmlData.p2)
})
win.show();
Ext.onReady(function () {
Ext.create({
title: 'My PDF',
xtype: 'panel',
width: 600,
height: 400,
items: {
xtype: 'box',
autoEl: {
tag: 'iframe',
style: 'height: 100%; width: 100%',
src: '/files/pdf-sample.pdf'
}
},
renderTo: 'output'
});
});
var-win=新的外部窗口({
标题:“PDF内容”,
宽度:420,
身高:320,
朴素:没错,
html:String.format(
'',
xhtmlData.p1、xhtmlData.p2)
})
win.show();
注意:如果浏览器知道内容类型是应用程序/PDF
,那么它只会将您的数据作为PDF打开,在这里,您使用的是AJAX.load()
方法,它会忽略从servlet响应返回的内容类型,但是,如果使用IFRAME直接引用它,浏览器将应用正确的
别忘了确保窗口的每个实例都被销毁(closeAction='close'
,默认设置),否则它会一次又一次地打开同一个PDF文档
Ext.onReady(function () {
Ext.create({
title: 'My PDF',
xtype: 'panel',
width: 600,
height: 400,
items: {
xtype: 'box',
autoEl: {
tag: 'iframe',
style: 'height: 100%; width: 100%',
src: '/files/pdf-sample.pdf'
}
},
renderTo: 'output'
});
});