我的birt版包含一张图片,当我导出为HTML时,图像显示为反对导出,pdf不起作用,并显示以下消息“此延期项目的资源无法访问。”
我咨询了您的论坛,但我没有在简化的rptdesign问题文件下找到明确的解决方案,
知道是我建议我的团队根据我三年的生活经验与Birt一起工作:3,我担心下面的例子在pdf中无法正确显示,这意味着我必须寻找其他允许我在生成的pdf中显示TextEditor内容的工具(或库)。 :(
仅供参考:
提前谢谢。
答案 0 :(得分:0)
为了显示PDF的base64图像,您可以在图像元素的onCreate中使用带脚本的动态图像元素来解码base64。
importPackage(Packages.javax.imageio);
importPackage(Packages.java.io);
importPackage(Packages.sun.misc);
decoder = new BASE64Decoder();
decodedBytes = decoder.decodeBuffer(this.getRowData().getColumnValue("CLOBData"));
this.data =decodedBytes;
bais = new ByteArrayInputStream( decodedBytes);
bufimg = ImageIO.read(bais);
this.setHeight(bufimg.getHeight() +"px");
this.setWidth(bufimg.getWidth() +"px");
替代
<value-of format="HTML"> if(row["B_CONTENT"] == null) {"";}else{ "<img src='data:image/png;base64,"}</value-of><value-of format="HTML"> row["B_CONTENT"]</value-of><value-of format="HTML"> if(row["B_CONTENT"] == null ) {"";}else{"' height='120' width='100' />"} </value-of>
答案 1 :(得分:0)
基于“JFreeman”的响应,我认为目前无法实现,因为我要显示的图像封装在HTML标记中,
图像不以PDF格式显示的原因是由于使用HTML将HTML64文本元素转换为图像。此HTML代码将在浏览器中的客户端执行,并且在将报表导出为生成服务器端的PDF时不会发生。
但我设法通过使用以下方法解决了这个问题:
这个算法确实有点复杂(我会做一个小项目,包含我有时间后完成的所有处理/控制)但关键是如何说服客户这个解决方案是明确的用户输入的文本的可见性,而不是被图片打扰: - )。