【问题标题】:Embed PDF in modelAndView在 modelAndView 中嵌入 PDF
【发布时间】:2013-05-29 20:13:42
【问题描述】:

我有一个返回 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 对象标记中的文档。

有什么想法吗?

附录编辑:

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

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

【问题讨论】:

    标签: jquery pdf spring-mvc


    【解决方案1】:

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

        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?即使使用 while(1) {waysIHateIE++; 我也无法计算方式。 }

    查看IE中的开发者工具,data=""有什么想法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-30
      • 2020-12-11
      • 2022-01-19
      • 2012-02-15
      • 2011-07-09
      • 2016-08-29
      • 2010-10-12
      • 2015-02-16
      相关资源
      最近更新 更多