【问题标题】:XDocReport can't display two image in generated documentXDocReport 无法在生成的文档中显示两个图像
【发布时间】:2017-07-05 11:01:15
【问题描述】:

我在模板中插入两个图像:“logo”和“background” 但模板中只显示背景图片。

我创建 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);

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

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

如何解决这个问题?

【问题讨论】:

    标签: java velocity xdocreport


    【解决方案1】:

    这是因为您将 FieldsMetadata 设置为报告两次。 您需要创建一个 FieldsMetadata metadata = 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);
    

    【讨论】:

    • 感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多