gpt4 book ai didi

java - XDocReport 无法在生成的文档中显示两个图像

转载 作者:行者123 更新时间:2023-12-01 20:56:32 25 4
gpt4 key购买 nike

我在模板中插入两个图像:“ Logo ”和“背景”但模板中仅显示背景图像。

我创建 ImageProdiver

private IImageProvider createImageProvider(IXDocReport ixDocReport, String fieldName, Blob image) {
FieldsMetadata metadata = ixDocReport.createFieldsMetadata();
metadata.addFieldAsImage( fieldName);
ixDocReport.setFieldsMetadata(metadata);
InputStream inputStream = null;

try {
inputStream = image.getBinaryStream();
IImageProvider logo = new ByteArrayImageProvider(inputStream);
logo.setUseImageSize(true);
logo.setResize(true);
inputStream.close();
return logo;
} catch (SQLException | IOException e) {
throw new GeneralException("Error reading logo");
} finally {
if(inputStream != null) {
IOUtils.closeQuietly(inputStream);
}
}
}

创建两个图像提供程序

IImageProvider logo = createImageProdider(report, "logo", blobimage));
IImageProvider background = createImageProdider(report, "logo", blobimagebacground));

并插入到构建器的上下文中

context = this.report.createContext();
context.put("logo", logo);
context.put("background", background);

生成文档后,仅存在背景图片。

我不明白为什么会出现这个问题,为什么只显示一张图片。

如何解决这个问题?

最佳答案

这是因为您将 FieldsMetadata 设置为报告两次。您需要创建一个 FieldsMetadata 元数据 = ixDocReport.createFieldsMetadata() 并向其中添加两个图像。敌人的例子:

 FieldsMetadata metadata = new FieldsMetadata();
metadata.addFieldAsImage("chart1");
metadata.addFieldAsImage("chart2");
report.setFieldsMetadata(metadata);

IImageProvider logo = new FileImageProvider(new File("path/to/image1"), true);
context.put("chart1", logo);

IImageProvider logo2 = new FileImageProvider(new File("path/to/image2"), true);
context.put("chart2", logo2);

关于java - XDocReport 无法在生成的文档中显示两个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42272170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com