iText 不在 Grails Web 应用程序中呈现图像

iText is not rendering image in Grails web application

我们正在尝试将图像作为流发送到 Grails 2.4.3 中的方法。

def imgStream
imgStream = servletContext.classLoader.getResourceAsStream("/assets/Logo.jpg")

我们调用另一个服务来呈现 PDF

ByteArrayOutputStream  output = licensePlanReportsService.renderLicensingPlanPDF(licensingPlanInstance, internal, imgStream)

我们正在使用 iText 2.1.7 和 poi 3.9-20121203com.lowagie.text.Image

if(imgStream) {
    Image logo = Image.getInstance(imgStream.getBytes())
    logo.scaleAbsolute(128.64, 88.32)
    logo.setAbsolutePosition(25, 485)
    document.add(logo)
}

图像未在我们输出的 PDF 报告中呈现。这似乎是将图像渲染为 PDF 的正确方法吗?

此问题已通过使用以下代码更改初始调用得到解决:

imgStream = grailsAttributes.getApplicationContext().getResource("Logo.jpg").getInputStream()

代替初始方式

imgStream = servletContext.classLoader.getResourceAsStream("/assets/Logo.jpg")

谢谢,

汤姆