[10改未]如何读取Access里的OLE类型的图片

编辑
  • 文档创建者:印然
  • 浏览次数:3367次
  • 编辑次数:10次
  • 最近更新:Kevin-s 于 2019-06-20
  • 1. 描述

    使用身份证读卡器读取照片信息保存在 Access 数据库的 OLE 型字段中,图片为bmp格式,因为是用其读卡器写入,数据类型为长二进制数据。

    将该图片字段拖入单元格后,预览看不到图片,如何才能在 FR 里把这个图片展现出来呢?

    2. 操作方案

    自定义函数,使用 Java 的 jna 调用本地的 WltRS.dll,将数据库 OLE 字段中的长二进制数据转为 .wlt 文件,再调用本地方法将 .wlt 文件转为 .bmp 图片,最终自定义函数返回图片在FR 中显示。

    3. 实现步骤

    3.1 前提准备

    本地库文件 WltRS.dll 保存在E:\bmp\WltRS.dll(位置可变,但必须保证与自定义函数中的路径一致)

    eclipse 项目中导入 FR 的 JAR 包。

    3.2 实现自定义函数

    我们自定义一个函数类 BinaryImage.java,该类继承 AbstractFunction,在 run() 方法中使用 Java 的 jna 调用本地库文件 WltRS.dll,最终返回图片。

    代码详见:

    https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/function/BinaryImage.java

    将编译后的 BinaryImage.class、WltRS.class 根据包名拷贝至报表工程如报表安装目录下的WebReport\WEB-INF\classes\com\fr\function\文件夹下。

    3.3 使用自定义函数

    将 OLE 类型字段的值显示为图片

    启动设计器,点击服务器>函数管理器,新增自定义函数 BINARYIMAGE,选择 com.fr.function.BinaryImage 类:


    将身份证读卡器写入 Access 数据库 OLE 型字段的照片信息拖入单元格,双击,在数据列>高级>自定义显示中使用自定义函数转换成图片:




    附件列表


    主题: 报表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]