发送PDF作为byte [] / JSON问题

时间:2011-09-05 19:52:50

标签: json pdf servlets

我正在尝试将生成的PDF文件(Apache FOP)发送到客户端。我知道这可以通过将数组写入响应流并在servlet中设置正确的内容类型,长度等来完成。我的问题是,整个应用程序是基于它只接收/发送JSON的想法而构建的。在servlet的service()方法中,我有:

  response.setContentType("application/json");
  reqBroker.process(request, response);

RequestBroker是处理JSON(杰克逊处理器)的类,一切都是通用的,我无法改变它。除此之外,我必须正确地从请求中接收JSON,以访问数据并生成我的pdf。所以这两行是必要的。但是当我发送响应时,我需要有另一种内容类型,以便在浏览器中正确显示pdf。    到目前为止,我能够将字节数组作为JSON的一部分发送,但后来我不知道如何在客户端上将数组显示为PDF(如果这样的smth甚至可能)。    我想要一些关于如何发送我的pdf并设置正确的标题的建议,而不会弄乱JSON。感谢。

2 个答案:

答案 0 :(得分:1)

JSON和字节数组不会混合。

相反,您应该创建一个<iframe>并将其指向返回原始PDF的网址。

答案 1 :(得分:-1)

看看这里:How to send pdf in json,它列出了你可以考虑的几种方法。最简单的方法是使用Base64压缩将二进制数据转换为字符串。在C#中,这意味着调用Convert.FromBase64String。但是这有空间开销,因为Base64压缩意味着大约+ 33%的内存。如果你可以逃脱它,这是最简单的解决方案。如果附加尺寸是一个问题,你可以考虑拉上它。