我有一个Grails Controller 操作,该操作调用一个服务,该服务将返回包含PDF的base64表示形式的XML。这是一个(简化的)示例样本。
<response status="Success"><messages/><values><pages>8</pages></values><xml/><files><pdf name="FitnessApplication" content-type="application/pdf"><![CDATA[JVBERi0xLjQKJeL ... </files></response>
解析完之后,我想在浏览器中显示该PDF。到目前为止,我已经能够解码字符串并使用render方法的file属性渲染它。这可以将PDF正确地提供为下载,但我希望它在浏览器中(内联)显示,而不是文件下载。
Map responseMap = new XmlParserHelper().parse( formsResponse.payload )
byte[] decoded = responseMap.files.pdf.decodeBase64()
render( file: decoded, fileName: "${document}.pdf", contentType: "application/pdf", )
我尝试将内容处置设置为呈现选项和 header 映射中的一个选项,但似乎都没有成功。有谁知道我如何在浏览器中为用户提供此PDF?
最佳答案
只需在响应中发送即可。但是您需要自己添加标题。例如。就像是:
response.contentType = "application/pdf"
response.contentLength = FileUtils.copyFile(pdfFile, response.outputStream)
关于grails - 将Grails Base64转换为PDF-内联渲染PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29144457/