Apache FOP 使用笔记-3

目录

1.打包后无法运行

2.引用失败        

3.依赖冲突

4.图片导入提示Vendor==null


1.打包后无法运行

这个问题实际上应该说是gardle 打包缺失依赖的问题,解决方案是在idea中通过右侧边的标签 gradle-shadow-shadowJar 进行打包,这时候打出来的包会有-all的名称。

2.引用失败        

碰到的问题是,在项目中fop可以正确的使用绝对路径引用图片,当将项目用gradle打包后,图片引用失败。查询了资料后,发现问题是因为图片资源应该以uri的形式导入,具体导入格式为

  • url(file:/h:/xxx.jpg)

  • url(file:h:///xxx.jpg)

两种格式,都可以完成图片的引用。

3.依赖冲突

这个问题实际开发中还是比较难以排除的,因为会与另一个问题叠加,导致如果没有每次都看报错信息,都按照找不到图片就会失去方向。

另一个问题的提示类似于

org.apache.xmlgraphics.image.loader.ImageException: 
The file format is not supported. No ImagePreloader found

原因是类的重复加载,在项目中使用了gradle作为编辑工具,使用shadow,找到的方案是在build.gradle中加入

shadowJar{
    mergeServiceFiles()
}

这样可以解决问题,不了解gradle,推测为合并了冲突的包。maven或其他包管理需要自行处理使用exclude等方式。

4.图片导入提示Vendor==null

导入图片需要依赖fop的图片处理jar包,这个包依赖com.sun.medie.imageioimpl.common.packageUtil.jar,这个包,在项目中直接启动,会依赖于jar包中的描述文件(MANIFEST.MF)进行加载。使用gradle-shadow-shadowJar,方式打包后,会讲jar包直接解压后打入新的jar包,会导致描述文件中可能缺失相关信息,这个时候需要手动加入,格式为

jar{
    manifest {
        attributes {
            "Implementation-Title" :
            "Implementation-Vendor" :
            "Implementation-Version" :
        }
    }
}

配置后可以通过获取这三个参数,实例化类。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值