grails - 将Grails Base64转换为PDF-内联渲染PDF

标签 grails pdf groovy

我有一个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/

相关文章:

grails - Grails 中对象缓存应该放在哪里?

pdf - Sweave 不打印本地化字符

python - 从Linux服务器将.txt重写为.pdf代码,以在Windows Enterprise 2008服务器上工作

groovy - 我如何使用 Groovy 在 Jenkins 中创建一个新项目

jQuery 验证 equalTo 不适用于 Grails

具有多个数据库的 Grails Multi-Tenancy (每个租户一个)2.4.0

java - Grails 应用程序中的 Perm Gem 问题

javascript - 在显示所有内容时跳转到带有反应pdf的特定页面

Groovy GPars,启动的每个线程都需要索引

groovy - 尝试使用 JIRA Scriptrunner 自定义 REST 端点时出现 404