如何将嵌入元素类型从PDF流切换到文本流

时间:2015-04-08 02:17:07

标签: java html java-ee pdf embed

在我的JSP Web应用程序中,我使用embed元素来显示PDF。

<embed src="someurl" width="900">

someurl将在一个案例中返回PDF流,在另一个案例中返回文本流:

if (IamPDF) {
    response.setContentType("application/pdf");
    /* rest of stream flushing */
} else {
    response.setContentType("text/html");
    /* rest of stream flushing */
}

我可以在IE和Chrome中刷新PDF流而不会出现问题。如果是文本流,IE无法显示流,但它在Chrome中正常工作。我没有在embed元素中指定任何类型。如何让它在IE中运行?

3 个答案:

答案 0 :(得分:1)

您可以通过设置type元素的embed属性来解决此问题。

对于HTML

<embed src="someurl" type="text/html" width="900">

和PDF

<embed src="someurl" type="application/pdf" width="900">

引用the embed element specification

  

type属性(如果存在)提供MIME类型,通过该类型选择要实例化的插件。该值必须是有效的MIME类型。如果同时存在type属性和src属性,则type属性必须指定与{{src给出的资源的显式Content-Type元数据相同的类型。 1}}属性。

移除MIME类型和有效MIME类型的链接,它们无关紧要。

答案 1 :(得分:0)

在JSP的第一行添加<!DOCTYPE html>以使IE以标准模式呈现网页。 例如, <!DOCTYPE html> <embed src="someurl" width="900">

答案 2 :(得分:0)

我会在

中指定type属性
<embed></embed>

标签;我也遇到过Internet Explorer不接受某些功能的问题,例如Javascript。这不是一个好的浏览器。我更喜欢Chrome或Firefox,我也知道一些人对Opera发誓。