在modelAndView中嵌入PDF

时间:2013-06-03 15:49:51

标签: jquery pdf spring-mvc

我有一个返回PDF URL的WebService。问题是CMS很糟糕,很脆弱,甚至可能不存在该文档。 (或者可能没有到CMS服务器的网络连接)

我使用的是Spring 3.2 MVC,我的控制器非常简单:

modelAndView.addObject("documentURL", service.getCmswsGetDocumentUrl());

和视图:

<object data="${documentURL}" width="600" height="800" type='application/pdf' >

如果文档存在,这一切都正常。

但是,我希望能够做到,比如一个javascript alert()或其他东西,如果文档不在那里。

有没有办法将pdf嵌入到modelAndView中,如

modleAndVIew.addObject("pdf",file);

或者某种方式我可以通过jQuery将数据添加到html对象?

我只是不想进行2次调用,一次是检索文档以查看是否可以,然后一次实际检索html对象标记中的文档。

有什么想法吗?

Adendum编辑:

我可以这样做吗?: Is it possible to put binary image data into html markup and then get the image displayed as usual in any browser?

我在控制器中对base64进行编码并将其传递给视图?

1 个答案:

答案 0 :(得分:0)

二进制图像和对象标记的组合。这是控制器:

    InputStream is = (new URL(service.getCmswsGetDocumentUrl())).openStream();
    byte[] pdfBytes = IOUtils.toByteArray(is);
    modelAndView.addObject("pdf",new String(Base64.encodeBase64(pdfBytes)));

和视图:

    <object  data="data:application/pdf;base64,${pdf}" width="600" height="800" type='application/pdf' >
    </object>

这适用于FF和Chrome,但不适用于IE 我讨厌IE多少钱?我无法计算方法(1){waysIHateIE ++; }

看看IE中的开发者工具,数据=“”任何想法为什么?