AFP通过FOP配置TLE编码:能否不在TLE内容中包含编码三元组?
AFP TLE编码三元组移除配置方案
FOP生成AFP时给
<afp:tag-logical-element>自动添加编码三元组(含长度和编码信息的6字节)是默认行为,但可以通过以下方式解决:- 修改FOP源码:找到
AFPLogicalElementProducer类中负责生成TLE内容的代码段,注释或移除写入编码三元组的逻辑,重新编译打包FOP后使用。 - 传入预编码二进制内容:不要直接传入文本形式的TLE内容,而是提前将内容按EBCDIC-1141编码为二进制流后传入,FOP大概率不会再自动添加编码三元组(需确保二进制内容无转码错误)。
- 尝试自定义配置:在
fop.xconf中添加AFP专属配置节点,比如:
注意:该配置是否生效取决于FOP版本,若官方未提供此开关则需回归源码修改方案。<afp> <tle> <include-encoding-triplet>false</include-encoding-triplet> </tle> </afp>
- 修改FOP源码:找到
额外提示:修改源码后需和打印服务提供商确认使用修改后的FOP版本;二进制传入方式要严格校验编码一致性,避免出现乱码影响POSY控制逻辑。
内容的提问来源于stack exchange,提问作者Marty N.
相关产品推荐
相关产品推荐

